MYSQL 选择特定日期之后的行(行类型为 varchar)

标签 mysql date varchar

我试图选择特定日期之后的所有列,但技巧是“日期”列是 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/

相关文章:

javascript - Node - 如何将 MongoDB 时间戳转换为日期

php - 负 float 日期

mysql - 警告 : Using unique option prefix pass instead of password is deprecated and will be removed in a future release. 请使用全名代替

mysql - 如何在 MySQL SUM 子查询中创建可用的别名

php - mysql中使用条件的值总和

MySQL 工作台 : "Can' t connect to MySQL server on 127. 0.0。 1' (10061)"错误

javascript - 在完整日历中突出显示自定义日期

sql-server-2008 - 如何在 T-SQL 中将 varchar 转换为 datetime?

sql-server - 在 SQL Server 中使用连接的人名正确的空间量

mysql - 关于 char varchar 和tinyint 的问题