色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql插入日期字段數值不對

林玟書2年前10瀏覽0評論

在MySQL數據庫中,有時候我們會遇到插入日期字段數值不對的問題。比如,我們執行如下SQL語句:

INSERT INTO test(date_time) VALUES("2020-02-31 12:00:00");

這條語句的意思是在test表中插入一條記錄,其中日期字段的值為2020年2月31日的12點,但是實際上該日期根本不存在,因為2月只有28天或29天,而31號是3月份才有的。

執行上述SQL語句,MySQL并不會報錯,而是自動將其轉換為2020年3月2日的12點。

這是因為MySQL遵從了標準的 SQL92 規范,會對不符合日期規范的值進行自動轉換。例如,對于二月份沒有31號的日期,MySQL會自動將它轉換為二月份的最后一天,即28號或29號(如果是閏年)。

如果我們不需要MySQL進行自動轉換,而是希望它直接報錯或者插入null值,可以通過設置SQL_MODE來實現。具體方法如下:

SET SQL_MODE=STRICT_ALL_TABLES; -- 對當前會話生效
-- 或者
sql-mode="STRICT_ALL_TABLES" -- 在配置文件中全局設置

這樣設置后,如果插入的日期不合法,MySQL就會報錯,或者將日期字段插入為null值。

總之,在MySQL中插入日期字段時,要注意日期值是否符合規范,以及使用什么樣的SQL_MODE。