在MySQL中实现where条件varchar字段

时间:2019-12-27 11:57:57

标签: mysql sql datetime

我有用法表,其中包含如下字段值

id | page_open_time

1, 28 May 2019 08:39:11
2, 12 July 2019 18:39:11
3, 22 December 2019 11:39:11
4, 23 June 2019 12:39:11

现在,我想获取page_open_time大于2019年7月1日的所有记录。为此,我在下面编写了此查询,但这没有帮助。有什么办法可以执行此操作吗?

 SELECT * FROM `usages` where page_open_time > '2019-07-01'

2 个答案:

答案 0 :(得分:1)

您的日期不是有效的MySQL DATETIME格式,因此您需要在使用STR_TO_DATE进行转换之前进行转换:

SELECT *
FROM usages
WHERE STR_TO_DATE(page_open_time, '%d %M %Y %H:%i:%s') > '2019-07-01'

输出

id  page_open_time
2   12 July 2019 18:39:11
3   22 December 2019 11:39:11

Demo on dbfiddle

答案 1 :(得分:-1)

您使用的是正确的SQL,只需添加时间, 像这样写

"SELECT * FROM usages where page_open_time > '2019-07-01 00:00:00'"