2012-06-27 62 views
0

我的表有數據結構這樣選擇具有特定日期格式的Where子句?

cate_id task_id date_start    date_end    other 
     34  14 2012-06-27 10:21:39 2012-06-27 10:21:42  Volume 
     34  14 2012-06-27 10:21:42 2016-01-01 00:00:00  Volume 




UPDATE tbl SET other ='new' 
WHERE task_id =14 
AND cate_id=34 
AND DATE_FORMAT('date_start','%Y-%m-%d')='2012-06-27' 
AND DATE_FORMAT('date_end','%Y-%m-%d')='2016-01-01'; 

我的目標是隻比較格式「%Y-%間%d」不是整數值的日期。

可以像上面那樣的mysql腳本嗎?因爲它成功執行sql腳本,但不更新我具體的col?任何人都可以告訴我嗎?感謝

+0

您必須僅比較日期部分,請檢查該鏈接http://blog.sqlauthority.com/2007/06/10/sql-server-retrieve-select-only-date-part-from-datetime-best-practice/ – Boomer

回答

5

嗚嗚......

嘗試圍繞date_startdate_end移除引號:

AND DATE_FORMAT(date_start,'%Y-%m-%d')='2012-06-27' 
AND DATE_FORMAT(date_end,'%Y-%m-%d')='2016-01-01'; 
+0

刪除'它的工作。感謝 – sophie

+0

@ user777297接受是更好的言語行動比謝謝。 :) –

0

嘗試使用date(date_start)date(date_end),而不是date format

UPDATE tbl SET other ='new' 
WHERE task_id =14 
AND cate_id=34 
AND date(date_start)='2012-06-27' 
AND date(date_end)='2016-01-01'; 

FYI:function_date