Mysql接受日期列中的零个月!?请解释一下
MySQL 5.6-我们与一位开发人员进行了交谈,发现了一些非常奇怪的东西-在google中找不到任何关于它的信息:Mysql接受日期列中的零个月!?请解释一下,mysql,database,mysql-5.6,rdms,Mysql,Database,Mysql 5.6,Rdms,MySQL 5.6-我们与一位开发人员进行了交谈,发现了一些非常奇怪的东西-在google中找不到任何关于它的信息: create temporary table md (dates date); insert into md select '2000-01-01'; -- result: 2000-01-01 insert into md select '2000-00-01'; -- result: 1999-12-01 ???? insert into md select '2000-00
create temporary table md (dates date);
insert into md select '2000-01-01'; -- result: 2000-01-01
insert into md select '2000-00-01'; -- result: 1999-12-01 ????
insert into md select '2000-00-00'; -- result: 1999-11-30 ????
insert into md select '2000-01-00'; -- result: 1999-12-31 ????
insert into md select '2000-13-01'; -- result: EXPECTED: SQL Error [1292] [22001]: Data truncation: Incorrect date value: '2000-13-01' for column 'dates' at row 1
insert into md select '2000-12-49'; -- result: EXPECTED: SQL Error [1292] [22001]: Data truncation: Incorrect date value: '2000-12-49' for column 'dates' at row 1
有人能解释一下吗
日期
列中存储出生日期,并且只知道部分日期,则此操作非常方便。要禁止日期中的零月或零日部分,请在日期中启用NO\u zero\u
模式
MySQL允许您将日期存储在日或月和日为零的位置。如果您想在日期
列中存储出生日期,并且只知道部分日期,则此操作非常方便。要禁止日期中的零月或零日部分,请在日期中启用NO\u zero\u
模式
好发现!但这意味着‘2000-00-00’将存储为‘2000-00-00’,而不是‘1999-11-30’!此外,这违背了尼斯发现!但这意味着‘2000-00-00’将存储为‘2000-00-00’,而不是‘1999-11-30’!此外,这也违反了法律