首页 > 解决方案 > 在where子句MySQL中转换日期

问题描述

我希望在 where 子句中将日期从 'd/m/Y' 转换为 'Y/m/d',如下所示:

SELECT * FROM myTable WHERE DATE_FORMAT(myDate,'%Y/%m/%d') = '2020/08/01'

此查询始终返回空结果

有没有办法做到这一点?

谢谢你。

标签: mysqlwhere-clausedate-format

解决方案


只需将数据转换为日期,然后对其进行格式化

SELECT * FROM myTable WHERE DATE_FORMAT(STR_TO_DATE(myDate,'%d/%m/%Y'),'%Y/%m/%d') = '2020/08/01'

或者将它们都设置为日期,然后您可以使用日期功能

SELECT * FROM myTable WHERE STR_TO_DATE(myDate,'%d/%m/%Y') = STR_TO_DATE('2020/08/01','%Y/%m/%d')

最好的方法是将日期保存为日期/日期时间/时间戳,这样您就可以毫无问题地使用它们进行计算,并且您始终可以将它们转换为任何输出


推荐阅读