问题
我试图通过运行下面提到的查询从date_time字段大于’星期四,2013年7月11日’的表中获取所有记录. date_time字段中的值以此格式存储=>星期四,2013年7月11日08:29:37任何帮助都会很棒.
字段date_time的数据类型是varchar
询问
SELECT * FROM table_name
WHERE username = 'mark@example.com'
AND STR_TO_DATE(date_time,'%a,%e %b %Y %H:%i:%s') >= 'Thu,11 Jul 2013 00:00:00';
最佳答案
您正在尝试将日期与字符串进行比较.
原文链接:https://www.f2er.com/mysql/433675.htmlstr_to_date函数应用程序是正确的,但您没有与日期进行比较.
正确的方法是:
select * from yourTable
where STR_TO_DATE(date_time,%e %b %Y %H:%i:%s') >= '2013-07-11 00:00:00'
请注意,日期格式为YYYY-MM-DD HH:mm:ss(这是MysqL的默认日期格式).
当然,您也可以与str_to_date结果进行比较:
... where STR_TO_DATE(date_time,%e %b %Y %H:%i:%s') >= STR_TO_DATE('Thu,11 Jul 2013 00:00:00',%e %b %Y %H:%i:%s')