MySQL:比较日期字符串?
我有一列是一个字符串,它拥有价值这样的: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