mysql插入、修改datetime類(lèi)型的字段,報(bào) Incorrect datetime value 的錯(cuò)誤,sql語(yǔ)句如下:
UPDATE xxx set time='2023-02-28T09:30:01.579049+08:00' WHERE id=1
如果去掉 +08:00 就可以插入。
試了網(wǎng)上說(shuō)的查看并修改時(shí)區(qū),都沒(méi)用,最后發(fā)現(xiàn)是 sql_mode導(dǎo)致的。
默認(rèn)的sql_mode的值是
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
其中一個(gè)值是 STRICT_TRANS_TABLES ,這個(gè)選項(xiàng)會(huì)對(duì)日期時(shí)間類(lèi)型的值進(jìn)行嚴(yán)格的轉(zhuǎn)換和檢查,因此可能會(huì)導(dǎo)致日期時(shí)間值的解析和轉(zhuǎn)換出現(xiàn)錯(cuò)誤。
具體來(lái)說(shuō),STRICT_TRANS_TABLES 選項(xiàng)會(huì)強(qiáng)制 MySQL 對(duì)日期時(shí)間類(lèi)型的值進(jìn)行檢查,確保其符合 MySQL 所定義的格式要求。如果日期時(shí)間字符串的格式不符合要求,MySQL 就會(huì)報(bào) "Incorrect datetime value" 的錯(cuò)誤。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-469423.html
在 /etc/my.cnf 中,顯式地將sql_mode中的STRICT_TRANS_TABLES這個(gè)值去掉,或者將sql_mode置為空,重啟mysql即可解決。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-469423.html
[mysqld]
# 對(duì),我沒(méi)打漏,等號(hào)右邊就是為空
sql_mode =
到了這里,關(guān)于mysql報(bào)1292 Incorrect datetime value錯(cuò)誤解決方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!