我正在使用 MySQL 8 并且在使用这种类型的查询时遇到问题: INSERT INTO review (name, create_date) VALUES('name', CONVERT(timestamp, DATETIME) - 1) 在where 子句。当时间戳的值类似于“2020-12-16 06:15:01”时,它正在工作。
但是如果值为 0 秒(例如:'2020-12-16 06:15:00'),则会丢弃错误。
Incorrect datetime value: '20201216061499' for column 'create_date' at row 1
code: ER_TRUNCATED_WRONG_VALUE
errno: 1292
sqlState: 22007
我在整个项目中都使用了这种表达方式。这个问题有没有简单的解决方案,而不改变每个表达式?那是一个错误吗?
此问题的一种解决方案是:
DATE_SUB(CONVERT(timestamp,DATETIME) INTERVAL 1 SECOND).
但正如我已经提到的,这需要更改每个表达式。