2013-02-27 56 views
0

我已經在桌面上存儲了所有事件。在該表中,我有一個名爲「event_date」的列。創建事件的人必須鍵入如下所示的日期:d/m/Y - 例如:27/02/2013。按事件日期排序事件 - 如何?

但是當我嘗試通過EVENT_DATE ASC對結果進行排序,它不想要的順序排列出來。我甚至嘗試用UNIX_TIMESTAMP(event_date)命令它,但它也不能解決我的問題。

我該如何解決這個問題?

有一個解決方案;當一個人創建一個事件時,我可以將其轉換爲時間戳。但是現在不能正確分類嗎?

在此先感謝。

+0

什麼數據類型是你的「event_date」列? – Raad 2013-02-27 11:23:45

+0

雖然你可以在排序前的日期把時間轉換,你會好得多的日期存儲類型日期或時間戳的數據庫字段,並使用數據庫'爲了by'做排序爲您服務。 – 2013-02-27 11:24:13

+0

@Raad類型是VARCHAR() – hskrijelj 2013-02-27 11:26:59

回答

1

你將不得不您的日期,如YYYY/MM/DD存儲在您的VARCHAR列正確有一個字母的排序工作。
正因爲如此,系統會進行排序:

27/02/2013 
01/03/2013 
06/03/2013 

這樣的:

01/03/2013 
06/03/2013 
27/02/2013 

如果您可以將您的欄更改爲DATE數據類型,您可以您的輸入格式切換爲YYYY-MM-DD或繼續接受DD/MM/YYYY及用途:

STR_TO_DATE('01/03/2013','%d/%m/%Y') 

的值轉換爲有效日期