17

Timeタイムスタンプ値を格納する列、を格納するName列、およびを格納する列を持つテーブルがありますStatus

次のように、特定のタイムスタンプの前にすべてのエントリを更新するクエリを見つけようとしています。

UPDATE `Table` 
SET Status=1
WHERE Name='personname' AND 'Time'<'2012-12-23 18:00:00'

クエリは有効ですが、何も変わりません。

パーツの結果を表示しようとすると、結果WHEREがありません。

私は何を間違っていますか?

4

3 に答える 3

41

文字列リテラルを比較しています'Time'

'Time'<'2012-12-23 18:00:00'

代わりに時間列を比較してみてください。

Time < '2012-12-23 18:00:00'

または、必要に応じて、バッククォートで囲みます。

`Time` < '2012-12-23 18:00:00'

SQL Fiddle での実例。

于 2012-12-28T12:04:41.627 に答える
3

バッククォートと一重引用符について確信があり、それでも機能しない場合は、これを試してください。

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')
于 2012-12-28T12:13:24.520 に答える
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'));
于 2019-06-10T07:50:39.310 に答える