在 where 子句 MySQL 中转换日期

Convert date in where clause MySQL

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

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

这个查询总是returns一个空结果

有办法吗?

谢谢。

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

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')

最好将日期保存为Date/Datetime/timestamp,这样你就可以毫无问题地用它们计算,而且你总是可以将它们转换成任何输出