Mysql选择date = now,如果Y-m-d H:i:s

时间:2013-08-08 09:21:15

标签: mysql date select format

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

即。我想选择像:

这样的行
WHERE DATE(datet) = '2013-08-07'

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

3 个答案:

答案 0 :(得分:1)

您自己有解决方案:

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(单击“查看执行计划”以查看索引的使用方式)。

答案 1 :(得分:0)

像这样使用

 SELECT DATE('2013-08-07 11:23:45');

它会返回

    -> '2013-08-07'

您可以使用

WHERE DATE(datet) = DATE('2013-08-07 11:23:45')

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date

答案 2 :(得分:0)

您可以在查询后尝试使用以下查询执行此操作:

SELECT * FROM `YOUR TABLE` WHERE DATE(`YOUR FIELD`) = DATE("2013-08-07");

OR

SELECT * FROM `YOUR TABLE` WHERE `YOUR FIELD` LIKE "%2013-08-07%";