的.NET代碼,DateTime.Now.ToString()
輸出是這樣的:訂單日期以VARCHAR的形式存儲在MySql中?
11/28/2011 1:17:05 PM
我將其存儲在MySQL作爲一個VARCHAR
。
當我SELECT
它回到我的DataTable,我希望它被命令。當然,因爲它是VARCHAR
,簡單的ORDER BY
將按字母順序排序而不按時間順序排序。
有沒有辦法按照時間順序ORDER BY
,使用SQL?
的.NET代碼,DateTime.Now.ToString()
輸出是這樣的:訂單日期以VARCHAR的形式存儲在MySql中?
11/28/2011 1:17:05 PM
我將其存儲在MySQL作爲一個VARCHAR
。
當我SELECT
它回到我的DataTable,我希望它被命令。當然,因爲它是VARCHAR
,簡單的ORDER BY
將按字母順序排序而不按時間順序排序。
有沒有辦法按照時間順序ORDER BY
,使用SQL?
你會希望STR_TO_DATE功能
SELECT columns
FROM table
ORDER BY STR_TO_DATE(varCharDateColumn, '%m/%d/%Y %h:%i:%s')
快速簡單!謝謝。這適用於我:STR_TO_DATE(VarcharDateColumn,'%m /%d /%Y%h:%i:%s') –
如果時間是12小時格式,如果包含AM,PM –
@SajeebAhamed,沒有mysql來測試,但我認爲你在格式的末尾添加'%tt',然後在格式化的字符串中添加'%tt'。這是我能從文檔中發現的最好的,沒有引擎的玩家。 –
爲什麼不將其存儲爲一個DATETIME?否則,每當你想按該列排序時,MySql將不得不轉換每個值,如果表變大,這將是耗時的。 – James
@詹姆斯我不同意,但有時候你在遺留系統上,並且無法幫助數據如何存儲。 –