如何禁用无效日期的日期/日期时间列到0000-00-00的自动转换? 在我的my.cnf中,我插入了这一行:
sql-mode = STRICT_ALL_TABLES,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE
分段:
[client]
[mysqld]
Mysql服务器在Debian服务器上运行,而Mysql版本是5.1.63-0 + squeeze1。
当我使用PHP执行INSERT或UPDATE时,无效值将在0000-00-00中转换。
谢谢
修改
table create:
CREATE TABLE IF NOT EXISTS `versioni` (
`cod_versione` int(11) NOT NULL,
`data` datetime NOT NULL,
PRIMARY KEY (`cod_versione`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入会在客户数据库中引发错误的语句,否则在开发中会转换为'0000-00-00':
INSERT INTO versioni (cod_versione, data) VALUES (67, '2014-04-101 00:00:00');
答案 0 :(得分:-1)
好吧,你可以尝试不插入无效日期......
但如果必须,您应该使用CHAR(10)
列而不是DATE
列,因为这会为您提供所需的自由。
或者,只需使用PHP函数(例如checkdate
)在将输入投放到数据库之前验证输入;)