2010-06-25 77 views
0

我的表看起來像這樣:的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 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()' 

此查詢與覈對時間也。

回答

1

你的表信息是不完整的,但此查詢會做你需要的東西:

SELECT * 
FROM ost_ticket_response 
WHERE DATE_FORMAT(Created, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d'); 

而不是DATE_FORMAT(NOW(), '%Y-%m-%d')你可以通過字符串值'2010-06-25'從您的代碼

1

很粗魯,但:

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) 
+0

這是唯一正確的答案不會導致全表掃描(如果正確索引)。 – ceteras 2010-06-25 11:27:35

0
WHERE Created >= date_format(CURRENT_TIMESTAMP(),'%Y%m%d000000') 
0

此查詢修復了我的專業版瑕疵:

SELECT count(response_id) as cnt, staff_id FROM ost_ticket_response WHERE CAST(created AS Date) = CURRENT_DATE() GROUP BY staff_id 

此查詢有什麼缺點嗎?

0

爲什麼不:

SELECT response FROM ost_ticket_response WHERE staff_id = 1 AND DATE(created) = CURDATE()