MySQL日期查询
我的桌子看起来像这样:MySQL日期查询,mysql,Mysql,我的桌子看起来像这样: Name Created ganesh 2010-06-25 10:54:54 vasant 2010-06-25 11:54:54 charlie 2010-06-25 12:54:54 sam 2010-06-25 13:54:54 vasamtj 2010-06-25 01:54:54 jack 2010-06-25 02:54:54 nima 2010-06-24 10:54:54 kumar 20
Name Created
ganesh 2010-06-25 10:54:54
vasant 2010-06-25 11:54:54
charlie 2010-06-25 12:54:54
sam 2010-06-25 13:54:54
vasamtj 2010-06-25 01:54:54
jack 2010-06-25 02:54:54
nima 2010-06-24 10:54:54
kumar 2010-06-24 10:54:54
jay 2010-06-24 10:54:54
paala 2010-06-23 10:54:54
test1 2010-06-23 10:54:54
jhon 2010-06-22 10:54:54
我只想显示今天的条目,在这种情况下,我不想添加时间:
SELECT response FROM ost_ticket_response WHERE staff_id = 1 AND created ='now()'
此查询也会随时间进行检查。您的表信息不完整,但此查询将执行您需要的操作:
SELECT *
FROM ost_ticket_response
WHERE DATE_FORMAT(Created, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d');
您只需从代码中传递字符串值'2010-06-25'
,而不是DATE\u格式(NOW(),“%Y-%m-%d”)
,这非常粗鲁,但是:
SELECT response FROM ost_ticket_response WHERE staff_id = 1 AND created BETWEEN from_days(to_days(now())) AND from_days(to_days(now())+1)
此查询修复了我的问题:
SELECT count( response_id ) as cnt, staff_id FROM ost_ticket_response WHERE CAST( created AS Date ) = CURRENT_DATE( ) GROUP BY staff_id
这个查询有什么缺点吗?为什么没有:
SELECT response FROM ost_ticket_response WHERE staff_id = 1 AND DATE(created) = CURDATE()
这是唯一不会导致完整表扫描(如果索引正确)的正确答案。
SELECT response FROM ost_ticket_response WHERE staff_id = 1 AND DATE(created) = CURDATE()