默認情況下MySQL是可以接受在日期中插入0值,對于現實來說日期中的0值又沒有什么意義。調整MySQL的sql_mode變量就能達到目的。
set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION';
set @@session.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION';
例子:
有一個用于記錄日志的表
create table app_logs(
id int not null auto_increment primary key,
log_tm timestamp not null,
log_info varchar(64) not null)
engine=innodb,charset=utf8;
向日志表插入有意思的日期值
insert into app_logs(log_tm,log_info) values(now(),'log_info_1');
insert into app_logs(log_tm,log_info) values('2016-12-01','log_info_2');
向日志表插入包涵0的日期值
insert into app_logs(log_tm,log_info) values('2016-12-00','log_info_2');
ERROR 1292 (22007): Incorrect datetime value: '2016-12-00' for column 'log_tm' at row 1
以上這篇淺談MySQL數據庫中日期中包含零值的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Mysql根據時間查詢日期的優化技巧
- mysql 獲取昨天日期、今天日期、明天日期以及前一個小時和后一個小時的時間
- 解析MySQL中存儲時間日期類型的選擇問題
- JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql
- MySQL 獲得當前日期時間 函數
- MySQL查詢兩個日期之間記錄的方法
- 詳解MySQL日期 字符串 時間戳互轉
- 詳解mysql 獲取當前日期及格式化
- mysql中格式化日期詳解
- mysql如何查詢兩個日期之間最大的連續登錄天數
- mysql日期date型和int型互換的方法
- mysql記錄根據日期字段倒序輸出
- mysql常用日期時間/數值函數詳解(必看)
- MySql判斷漢字、日期、數字的具體函數
- MySQL中日期和時間戳互相轉換的函數和方法
- Mysql獲取當前日期的前幾天日期的方法
- mysql 獲取當前日期函數及時間格式化參數詳解
- MySQL日期函數與日期轉換格式化函數大全