我有一个MySQL数据库,它有一个LASTUPDATE列作为VARCHAR。
此字段的格式为:YYYY-MM-DD HH:mm:ss
我需要设置一个SELECT查询来查找某个日期之后的所有行,因此我试图以这种方式使用CONVERT函数

SELECT * from POWER WHERE CONVERT(DATETIME, LASTUPDATE) > 'CONVERT(DATETIME, '2016-12-29 17:24:22')'

但我发现了错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LASTUPDATE) > 'CONVERT(DATETIME, '2016-12-29 17:32:52')'' at line 1

我还尝试使用:
SELECT * from POWER WHERE CONVERT(DATETIME, LASTUPDATE) > '2016-12-29 17:32:52'但我也有同样的错误

最佳答案

你可以用str_to_日期

SELECT *
from POWER
WHERE str_to_date(LASTUPDATE, '%Y-%m-%d %H:%i:%s' ) >
        str_to_date('2016-12-29 17:24:22', '%Y-%m-%d %H:%i:%s' )

关于mysql - 带VARCHAR日期的SQL Where子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41399562/

10-15 22:06