我有一列是一個字符串,它擁有價值這樣的:11.05.2012 05:22:12
MySQL:比較日期字符串?
現在我想的是在該列中一個date <= 30.09.2011
所有行。我試過
DATE_FORMAT(my_column_with_the_string_date, "%Y-%m-%d") <= '2011-09-30'
但是這個失敗(沒有返回結果)。有任何想法嗎?
我有一列是一個字符串,它擁有價值這樣的:11.05.2012 05:22:12
MySQL:比較日期字符串?
現在我想的是在該列中一個date <= 30.09.2011
所有行。我試過
DATE_FORMAT(my_column_with_the_string_date, "%Y-%m-%d") <= '2011-09-30'
但是這個失敗(沒有返回結果)。有任何想法嗎?
你需要的是STR_TO_DATE()
函數。
SELECT
*
FROM yourTable
WHERE
STR_TO_DATE(my_column_with_the_string_date, '%d.%m.%Y') <= '2011-09-30'
瞭解更多關於它here。
作品,謝謝! – user1540714 2012-08-17 12:48:39
這不是最好的性能,因爲您在my_column_with_the_string_date上對所有單元格進行了轉換。在大表中,它將會非常低。 您應該轉換字符串,而不是 – 2014-05-14 12:17:07
我們在這裏有一個範圍比較。比較字符串而不是日期時,你會得到錯誤的結果。 – fancyPants 2014-05-14 17:58:41
爲什麼失敗?沒有返回行?或者給你一個錯誤? – 2012-08-17 12:43:11
是的,沒有行返回 – user1540714 2012-08-17 12:45:17