mysql中Date的型別預設值檢查
阿新 • • 發佈:2019-02-04
不同版本的mysql中對Date型別的預設值檢查是不一樣的,當使用到timestamp中設定預設值為0的格式時,由於不同的mysql中對資料型別中的檢查規範不一樣,所以導致不同mysql中可能支援的結果不同。
可以使用下面的查詢語句可知:
SELECT @@GLOBAL.sql_mode; --設定全域性的
SELECT @@SESSION.sql_mode; --設定此次會話中的
由於不同版本mysql或者sql_mode中的設定不同所查到的結果也會不同
需要修改時可以分為兩種方式,第一種為sql語句的修改,第二種為配置檔案的修改。
- 第一種
SET GLOBAL sql_mode = 'modes';
SET SESSION sql_mode = 'modes';
- 第二種
window下面:找到配置檔案my.int檔案後,修改成功後,重啟mysql服務
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
linux下面:找到配置檔案my.cnf,在ect檔案下面,修改以同樣的sql語句,同樣重啟服務
對於日期檢查格式時,需要將sql_mode中的NO_ZERO_IN_DATE與NO_ZERO_DATE的檢查去掉。
官方說明地址:
https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html