すべてのポインタが高く評価されます!私は構文に何が間違っているのかを知ることはできません。答えは見つからなかったので、私はここに質問を投稿しています。前もって感謝します!MySQL DATE_ADDは日付を0に変換しますか?
は、ここに私が試したものです:
mysql> select DATE_ADD(start_date, INTERVAL 2 week), DATE_ADD(end_date,
INTERVAL 2 week) from lists where id=1;
+---------------------------------------+------------------------------
-------+
| DATE_ADD(start_date, INTERVAL 2 week) | DATE_ADD(end_date, INTERVAL 2
week) |
+---------------------------------------+------------------------------
-------+
| 2017-05-28 | 2017-06-11
|
+---------------------------------------+------------------------------
-------+
結果が正しい見えます。次に、私は試しました:
mysql> update lists set start_date=DATE_ADD(start_date, INTERVAL 2 WEEK) and
end_date=DATE_ADD(end_date, INTERVAL 2 WEEK) where id=1;
ERROR 1292 (22007): Incorrect date value: '0' for column 'start_date' at row
1
SOに関するいくつかの調査はありましたか?いくつかの回答は厳格なモードを指していますか?しかし、厳密なモードエラーを発生させるためには、計算された日付は最初に0にする必要があり、上記の構文がDATE_ADDにどのようにしてそのようになるかはわかりません。
ただ、テストのために、私はこれを試してみました:
mysql> update ignore lists set start_date=DATE_ADD(start_date,
INTERVAL 2 week) and end_date=DATE_ADD(end_date, INTERVAL 2 week) where
id=1;
Query OK, 1 row affected, 1 warning (0.02 sec)
それは、このような結果が得られた:
mysql> select start_date, end_date from lists where id=1;
+------------+------------+
| start_date | end_date |
+------------+------------+
| 0000-00-00 | 2017-05-28 |
+------------+------------+
どのように?
もう一度お返事ありがとうございます。
新しいSOユーザーからこの質問をアップする。どうして?それはよく尋ねられるからです。良い質問のすべてが難しい答えを持っているわけではありません。 –