我试图选择特定日期之后的所有列,但技巧是“日期”列是 varchar
我有这个
SELECT * FROM `users` WHERE STR_TO_DATE(birthday,'%m/%d/%Y') > '10-10-2000'
举个例子,我想选择生日在 2000 年 10 月 10 日之后的所有用户,但这只会返回所有行。
有人知道出了什么问题吗?
最佳答案
您正在比较数据和字符串。我会使用CAST
:
WHERE STR_TO_DATE(birthday,'%m/%d/%Y') > CAST('2000-10-10' AS date)
另请注意,我更改了第二个的格式以匹配 mysql 的期望。您还可以在此处使用 STR_TO_DATE。
关于MYSQL 选择特定日期之后的行(行类型为 varchar),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12252345/