繁体   English   中英

MYSQL查询选择列字符串日期与格式化当前日期的日期比较

[英]MYSQL query select column string date compared to date formatted current date

这是我尝试在SQL phpMyAdmin中运行的查询以检索2行数据:

SELECT * FROM table WHERE STR_TO_DATE(theDate, '%a, %b %e') = DATE_FORMAT(curdate(), '%a, %b %e')

我没有错误,也没有结果。 对于今天的日期,Date列中的字符串格式如下:

Tue, Jan 20

转换比较中我做错了什么?

您的日期格式缺少一年,这会使日期比较变得复杂。 最好的解决方案可能是将当前日期转换为字符串:

WHERE thedate = DATE_FORMAT(curdate(), '%a, %b %c')

您应该对这些列使用本地日期/时间格式,而不是字符串。

STR_TO_DATE()从字符串创建日期,而CURDATE()直接返回日期。

这应该工作:

WHERE STR_TO_DATE(theDate, '%a, %b %c') = curdate()

STR_TO_DATE(theDate, '%a, %b %c')将日期行字符串日期转换为Ymd格式

你正在尝试比较查询

`%Y-%m-%d` = '%a, %b %c'

如果要比较其他格式的日期,请尝试此查询

如果theDate日期专卖店格式Tue, Jan 20

SELECT * FROM table WHERE 
    theDate = 
       DATE_FORMAT(curdate(), '%a, %b %c')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM