2011-11-29 78 views
1

的.NET代碼,DateTime.Now.ToString()輸出是這樣的:訂單日期以VARCHAR的形式存儲在MySql中?

11/28/2011 1:17:05 PM

我將其存儲在MySQL作爲一個VARCHAR

當我SELECT它回到我的DataTable,我希望它被命令。當然,因爲它是VARCHAR,簡單的ORDER BY將按字母順序排序而不按時間順序排序。

有沒有辦法按照時間順序ORDER BY,使用SQL?

+3

爲什麼不將其存儲爲一個DATETIME?否則,每當你想按該列排序時,MySql將不得不轉換每個值,如果表變大,這將是耗時的。 – James

+0

@詹姆斯我不同意,但有時候你在遺留系統上,並且無法幫助數據如何存儲。 –

回答

10

你會希望STR_TO_DATE功能

SELECT columns 
FROM table 
ORDER BY STR_TO_DATE(varCharDateColumn, '%m/%d/%Y %h:%i:%s') 
+0

快速簡單!謝謝。這適用於我:STR_TO_DATE(VarcharDateColumn,'%m /%d /%Y%h:%i:%s') –

+0

如果時間是12小時格式,如果包含AM,PM –

+0

@SajeebAhamed,沒有mysql來測試,但我認爲你在格式的末尾添加'%tt',然後在格式化的字符串中添加'%tt'。這是我能從文檔中發現的最好的,沒有引擎的玩家。 –

相關問題