mysql報(bào)1292?Incorrect?datetime?value錯(cuò)誤的解決方法
mysql插入、修改datetime類型的字段,報(bào) Incorrect datetime value 的錯(cuò)誤,sql語句如下:
UPDATE xxx set time='2023-02-28T09:30:01.579049+08:00' WHERE id=1
如果去掉 +08:00 就可以插入。
試了網(wǎng)上說的查看并修改時(shí)區(qū),都沒用,最后發(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ì)對日期時(shí)間類型的值進(jìn)行嚴(yán)格的轉(zhuǎn)換和檢查,因此可能會(huì)導(dǎo)致日期時(shí)間值的解析和轉(zhuǎn)換出現(xiàn)錯(cuò)誤。
具體來說,STRICT_TRANS_TABLES 選項(xiàng)會(huì)強(qiáng)制 MySQL 對日期時(shí)間類型的值進(jìn)行檢查,確保其符合 MySQL 所定義的格式要求。如果日期時(shí)間字符串的格式不符合要求,MySQL 就會(huì)報(bào) "Incorrect datetime value" 的錯(cuò)誤。
在 /etc/my.cnf 中,顯式地將sql_mode中的STRICT_TRANS_TABLES這個(gè)值去掉,或者將sql_mode置為空,重啟mysql即可解決。
[mysqld] # 對,我沒打漏,等號右邊就是為空 sql_mode =
到此這篇關(guān)于mysql報(bào)1292 Incorrect datetime value錯(cuò)誤的解決方法的文章就介紹到這了,更多相關(guān)mysql報(bào)錯(cuò)1292 Incorrect datetime value內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql 如何實(shí)現(xiàn)多張無關(guān)聯(lián)表查詢數(shù)據(jù)并分頁
這篇文章主要介紹了Mysql 實(shí)現(xiàn)多張無關(guān)聯(lián)表查詢數(shù)據(jù)并分頁的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06MySQL的雙寫緩沖區(qū)Doublewrite Buffer詳解
這篇文章主要介紹了MySQL的雙寫緩沖區(qū)Doublewrite Buffer詳解,InnoDB是MySQL中一種常用的事務(wù)性存儲(chǔ)引擎,它具有很多優(yōu)秀的特性,其中,Doublewrite Buffer是InnoDB的一個(gè)重要特性之一,本文將介紹Doublewrite Buffer的原理和應(yīng)用,需要的朋友可以參考下2023-07-07SQL結(jié)果如何根據(jù)某個(gè)字段取最新時(shí)間去重
在日常的項(xiàng)目開發(fā)當(dāng)中,經(jīng)常會(huì)遇到獲取同一屬性相同的記錄,如何獲取記錄時(shí)間最新的那一條,下面這篇文章主要給大家介紹了關(guān)于SQL結(jié)果如何根據(jù)某個(gè)字段取最新時(shí)間去重的相關(guān)資料,需要的朋友可以參考下2023-06-06