我有一个包含列Time
的表,用于存储时间戳值,存储Name
的列和存储Status
的列。
我正在尝试查找更新所有条目的查询,如下所示:
UPDATE `Table`
SET Status=1
WHERE Name='personname' AND 'Time'<'2012-12-23 18:00:00'
查询有效,但没有任何变化。
尝试显示WHERE
部分的结果时,没有结果。
我做错了什么?
答案 0 :(得分:31)
您正在比较字符串文字'Time'
:
'Time'<'2012-12-23 18:00:00'
尝试比较时间列:
Time < '2012-12-23 18:00:00'
或者如果必须,请用反引号括起来:
`Time` < '2012-12-23 18:00:00'
答案 1 :(得分:2)
如果您确定反引号和单引号仍然无效,请尝试 这个,
UPDATE `Table`SET Status=1
WHERE Name='personname' AND
Time < STR_TO_DATE('2012-12-23 18:00:00','YYYY-MM-DD HH:MI:SS')
答案 2 :(得分:0)
尝试一下:
UPDATE `Table`SET Status=1
WHERE Name='personname' AND
Time < UNIX_TIMESTAMP(STR_TO_DATE('23-12-2012 18:00:00',' "%d-%m-%Y %h:%i:%s'));