我试图在mysql中运行一个查询,以从一个表中选择所有记录,其中该记录的"end_date“大于或等于当前日期,但它总是出现"MySQL返回一个空的结果集”。但是这样的记录肯定存在于我的表中,我的查询有问题吗?
这是一个记录"03/24/2014“的end_date列中的值。
这是我的疑问
SELECT * FROM ******** WHERE DATE(end_date) > DATE(CURDATE())然而,我怀疑这可能是日期格式,这意味着我的计算机上的日期格式可能是这样的: dd/MM/yyyy,而服务器上的日期格式可能是MM/dd/yyyy。
不幸的是,如果是这样的话,我还不知道该怎么办。
发布于 2014-03-12 18:01:38
正如@FreshPrinceOfSO在评论中指出的,最好将日期存储为实际日期、时间戳或日期时间。
如果这不是一个选项--例如,这不是您要修改的数据库--那么Mysql有一个可以使用的STR_TO_DATE()函数:
SELECT * FROM ********
WHERE STR_TO_DATE(end_date,'%m/%d/%Y') > CURDATE(); 但是..。如果end_date列有索引,则应用于它的函数将取消索引效益。
https://stackoverflow.com/questions/22359916
复制相似问题