test1テーブルのtimestampを変更したくて15分つまづきました。
カラムの型が何かっていうのちゃんと把握してSQL書こうねっていう話です。
変更前(テーブル)
id | name | timestamp |
---|---|---|
1 | pe | 2021-12-1 09:00:00 |
2 | bu | 2021-12-2 10:00:00 |
3 | ze | 2021-12-3 11:00:00 |
3 | pe | 2021-12-3 11:10:00 |
変更後(こうしたい)
id | name | timestamp |
---|---|---|
1 | pe | 2021-11-24 09:00:00 |
2 | bu | 2021-11-25 10:00:00 |
3 | ze | 2021-12-3 11:00:00 |
3 | pe | 2021-12-3 11:10:00 |
というわけでググってそれっぽいのがあったので下記のSQLを実行・・・した結果エラー
mysql
UPDATE test1 SET date=2021-11-24 09:00:00 WHERE name= 'pe'
mysql-error
# 1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near '2021-11-24 09:00:00 WHERE name= 'pe'' at line 1
何かしら構文が間違っていることは分かるけどどこかがいまいち分からず
解説サイトをモソモソと。。。
この時ぺは2行あるのでpeじゃダメなんだろうか。。。。
エラー的には違うんだよなぁ、云々考えつつ、こういうこともできるかな?と思って色々と実行
まちがったmysql
# 1
UPDATE test1
SET ,date = 2021-11-24 09:00:00
WHERE name= 'pe'
---err=> #1064 - You have an error in your SQL syntax;
# 2
UPDATE test1
SET ,date = 2021-11-24
WHERE name= 'pe'
---err=> #1064 - You have an error in your SQL syntax;
# 3
UPDATE test1
SET date = 2021-11-24 09:00:00
WHERE name= 'pe'
---err=> #1064 - You have an error in your SQL syntax;
うーん、なんかあとちょっとなのに上手く行かない。
とりあえず文字囲いしてみると・・・
答え
mysql
UPDATE `test1`
SET date = '2021-11-24 09:00:00'
WHERE name= 'pe'
TIMESTAMP型は数字か文字列かをちゃんと把握せずにSQLを書いて、「あっ」となったのでした。
以上、カラムの型が何かっていうのちゃんと把握してSQL書こうね。という話でした。
参考にした
https://www.doodle-office.work/entry/2017/07/12/161520
updata文を一旦再確認
http://sql.main.jp/sql13.html