1. 程式人生 > >mysql中Date的型別預設值檢查

mysql中Date的型別預設值檢查

        不同版本的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_DATENO_ZERO_DATE的檢查去掉。
        官方說明地址:

https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html