Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sortowanie tabeli wg kolumny z datą i czasem w formacie DD-MM-YYYY hh:mm
Forum PHP.pl > Forum > Bazy danych > MySQL
unloco
Witam serdecznie. Czy jest możliwość posortowania następującej tabeli:



wg kolumny "data" od najwcześniejszej daty do najstarszej?

Proszę zwrócić uwagę, że pozycja nr 9 jest z najstarszą datą więc powinna być na samej górze tabeli.
Odpada sortowanie wg kolumny ID gdyż daty mogą zostać zastąpione nowszymi bez zmiany ID.

Oczywiście żeby pomóc rozwiązać problem wspomnę, że kolumna "data" jest typu "VARCHAR" ale jeśli można to zrobić tylko zamieniając tą kolumnę na inny typ to prosiłbym o pomoc jak wprowadzić (podejrzewam, że DATETIME?) aktualną datę (aby data była wprowadzona tak jak na screenie) do danego rzędu?

Znalazłem coś (bym zapewne jednak musiał zmienić typ kolumny na DATETIME) co może pomóc rozwiązać mój problem:



jednakże zaznaczona funkcja zapisuje tylko jako DD-MM-YYYY ale brakuje jeszcze hh:mm.

Proszę o pomoc.
Smertius
Spróbuj,
  1. ORDER BY UNIX_TIMESTAMP(DATA)


Głowy sobie nie dam uciąć że zadziała, z takim formatem daty ale...
kefirek
Tak po za tym 31.11.2010 nie ma takiej daty w kalendarzu co najwyżej 30.11.2010
  1. SELECT * FROM daty ORDER BY
  2. CAST(CONCAT(SUBSTRING(DATA, 7, 4),'-',SUBSTRING(DATA, 4, 2),'-',SUBSTRING(DATA, 1, 2),' ',SUBSTRING(DATA, 12, 5)) AS DATETIME)
unloco
Kefirek racja - wtedy ręcznie edytowałem rząd tabeli i sprawdzałem jak domyślnie by się formatowało (nie zwróciłem uwagi, że listopad ma 30 dni).
Później popróbuję którejś z Waszych metod, chyba, że ktoś z was już jest pewien swojego?
Quadina
Wydaje mi się, że nawet poniższy kod posortuje bez problemu taki format:
  1. SELECT
  2. *
  3. FROM
  4. daty
  5. ORDER BY
  6. DATA
Smertius
@up nie posortuje ponieważ data jest przechowywana jako varchar
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.