ADDTIME()
の実際の動作を理解しようとしています。
サンプル表:エラーを返すMysqlのADDTIME関数が間違った時間値を切り捨てました:'35 00:00:00 '
CREATE TABLE table3 (
id INT(11) NOT NULL AUTO_INCREMENT,
update_time DATETIME NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=latin1;
サンプルデータ:私は次のクエリを実行した場合
+-----+-----------------------+
| id | update_time |
+-----+-----------------------+
| 1 | 2017-09-13 18:55:24 |
| 2 | 2017-08-10 18:53:16 |
+-----+-----------------------+
、それは私にエラーを与える:
UPDATE table3 SET update_time = ADDTIME(NOW(), '60 00:00:00') WHERE id=1;
Error Code: 1292
Truncated incorrect time value: '60 00:00:00'
次のクエリは正常に動作しますが:
UPDATE table3 SET update_time = ADDTIME(NOW(), '5 00:00:00') WHERE id=1;
DAY
の値を引き続き増加させようとしたところ、DAY=34
までは正常に動作し、DAY > 34
の場合は破損していました。
制限を超えて壊れた理由を明確に解明できませんでした。それがどう働いているのかご説明ください。
PS:代わりにDATE_ADD()
を使用できることを知っています。私はMySql 5.7.12を使用しています。 https://dev.mysql.com/doc/refman/5.7/en/time.htmlから