2012-12-16 4 views
5

Ich habe eine Tabelle, die eine Datetime-Feld Typ enthält, und ich möchte, dass die ausgewählte Syntax sortieren hängt davon ab, es abwärts, ebenso wie die folgenden:Sortieren nach Datumzeit 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

Antwort

20
ORDER BY columnname DESC 

Ta-dah!

+0

@Samer: Es funktioniert zwar, aber es würde auch funktionieren, wenn Sie 'UNIX_TIMESTAMP' entfernen. In diesem Fall würde es nichts ändern – zerkms

+1

Ich habe diese Syntax verwendet und es funktioniert richtig: Reihenfolge von UNIX_TIMESTAMP ('my_column_name') desc – Samer

+7

Und wie gesagt, UNIX_TIMESTAMP' sinnlos hier. 'ORDER BY my_column_name DESC' ist genug – zerkms

9
ORDER BY UNIX_TIMESTAMP(columnname) DESC 

Die UNIX_TIMESTAMP ist erforderlich, weil MySQL sie als Strings (ex 9:00 erscheint nach 16:00) prüft

0

In meinem Fall dtEvent Feld Date-Typ. Dies ist die einzige Lösung, die ich gefunden:

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;