如果日期格式为SELECT,如何Y-m-d H:i:s特定日期的行?

即我想选择以下行:

WHERE DATE(datet) = '2013-08-07'


但值是:2013-08-07 11:23:45

最佳答案

您自己有解决方案:

SELECT * FROM tbl WHERE DATE(datet) = '2013-08-07'


假设datetDATETIME列,这是最有效的方法,因为这样MySQL便可以使用datet上的潜在索引来处理WHERE子句。

取决于您的MySQL WHERE datet LIKE '2013-08-07%'版本,也可以通过使用索引来完成这项工作(因为模式的最左边部分是恒定的)。我认为这不太优雅。



编辑:事实上,通过测试,它似乎也可以与VARCHAR / CHAR列一起有效地工作。请参见http://sqlfiddle.com/#!8/1c2da/1(单击“查看执行计划”以查看索引的使用方式)。

关于mysql - Mysql选择日期=现在,如果Y-m-d H:i:s,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18122318/

10-12 17:25