3

我的表有这样的数据结构

    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-%m-%d' 进行比较,而不是整个值。

可以像上面的mysql Script那样做吗?因为它成功执行了sql脚本,但没有更新我特定的col?任何人都可以告诉我吗?谢谢

4

2 回答 2

9

哼...

date_start尝试删除和周围的引号date_end

AND DATE_FORMAT(date_start,'%Y-%m-%d')='2012-06-27' 
AND DATE_FORMAT(date_end,'%Y-%m-%d')='2016-01-01';
于 2012-06-27T10:07:37.487 回答
0

尝试使用date(date_start)anddate(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';

仅供参考:function_date

于 2012-06-27T10:06:30.070 回答