![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Od początku na swojej stronie mam tabelę z rekordami gdzie jest pole "data_dodania" i nie wiem czemu (może temu że to było dawno temu) zrobiłem to pole jako VARCHAR a datę wrzucałem przez date() w php. Problem pojawił się teraz jak chcę zrobić sortowanie wyników z tej tabeli wg. daty dodania. Nie wiem co będzie lepsze czy kombinować z tym i dalej trzymać się varchar czy jakimś magicznym sposobem przekonwertować tabele na DATETIME.
W tym polu data wrzucana przez date() w php wygląda tak: 10-10-2014, 19:14:56 i nie wiem jak zrobić sortowanie ![]() |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 148 Pomógł: 17 Dołączył: 20.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem ze nie masz w tej tabeli żadnego pola id z auto incrementem? Bo jeżeli tak to równie dobrze możesz sortować po tym polu.
Jeżeli nie no to cóż, wg mnie dobrze mieć tabele w jakimś normalnym formacie żeby na przyszłość nie kombinować już. Więc wyciągnij sobie po prostu wszystkie wartości data_dodania w php i pozamieniaj je na format date_time : $mysqldate = date( 'Y-m-d H:i:s', $phpdate ); Gdy już będziesz miał poprawioną tabele, zamien typ danych na datetime i tyle |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 358 Pomógł: 0 Dołączył: 19.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Mam pole z AI, ale tutaj chodzi o to żeby właśnie sortować po dacie dodania, nie po innym polu
![]() Nie ma jakiejś super funkcji co mi przekonwertuje date? ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Wykonaj kopię bazy danych.
2. Dodaj nową kolumnę typu DATE do tabeli. 3. Wykonaj zapytanie UPDATE, które przekopiuje wartość z kolumny VARCHAR do kolumny DATE, jednak pamiętaj o tym, by ten przecinek w formacie usunąć - funkcja REPLACE. 4. Sprawdź czy dane zostały poprawnie przeniesione. 5. Usuń pierwotną kolumnę VARCHAR. 6. Zmień nazwę kolumny DATE na taką jak miała pierwotna. Dodatkowo: 1. Nie pamiętam już czy w MySQL nie dałoby się tego zrobić przez ALTER TABLE + funkcję konwertującą, ale to bez znaczenia - jest to jednorazowa operacja. 2. Zapewne dane z bazy wyświetlasz na stronie "jak lecą". Teraz będziesz musiał je odpowiednio sformatować do postaci YYYY-MM-DD, HH:MM:SS. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 03:50 |