2012-12-16 17 views
5

Mam tabeli, która zawiera typ pola datetime i chcę, aby posortować select składnia zależy to malejącym, jak następuje:Zamówienie przez datetime mysql

2012-12-12 01:44:20

2012-12-11 01:44:40

2012-12-10 01:40:36

2012-12-09 12:28:19

2012-12- 09 12:19:21

2012-12-09 12:11:50

2012-12-09 12:00:11

2012-12-09 11:59:26

2012-12-09 11:57:08

2012-12-09 11:55:21

Odpowiedz

20
ORDER BY columnname DESC 

Ta-Dah!

+0

@Samer: Działa rzeczywiście, ale to działa tak dobrze, jeśli usunąć 'UNIX_TIMESTAMP'. W tym przypadku nic by to nie zmieniło – zerkms

+1

Użyłem tej składni i działa poprawnie: zamówienie według UNIX_TIMESTAMP ("moja_nazwa_kolumnowa') desc – Samer

+7

I jak już powiedziałem" UNIX_TIMESTAMP "bezcelowe tutaj. Wystarczy "ORDER BY my_column_name DESC" – zerkms

9
ORDER BY UNIX_TIMESTAMP(columnname) DESC 

UNIX_TIMESTAMP jest potrzebna, ponieważ mysql testuje je jako ciągi (ex 9:00 pojawiającym się po 16:00)

0

W moim przypadku dtEvent pole jest typu datetime. Jest to jedyne rozwiązanie znalazłem:

SELECT myTable.recordId, myTable.dtEvent 
FROM myTable 
WHERE myTable.dtEvent IS NOT NULL 
ORDER BY CAST(YEAR(myTable.dtEvent) AS UNSIGNED), 
    CAST(MONTH(myTable.dtEvent) AS UNSIGNED), 
    CAST(DAY(myTable.dtEvent) AS UNSIGNED) 
LIMIT 100; 
Powiązane problemy