我创建了一个表..这是代码

create table ddate(
ddate date);


之后,我试图像这样插入值

insert into ddate(ddate)value(2010-04-12);


但这给了我一个警告


  插入ddate(ddate)value(2010-04-12)受影响的1行,1
  警告:1264第1行的'ddate'列超出范围的值0.001
  秒

最佳答案

日期文字用单引号括起来,例如字符串文字。

insert into ddate(ddate)value('2010-04-12')
                              ^          ^




在文字周围没有单引号的情况下,MySQL会将其评估为数值,即计算结果:

2010 - 04 - 12


这使得原始语句实质上等同于

insert into ddate(ddate)value( 1994 )

关于mysql - mysql DATE数据类型取不正确的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36959701/

10-08 22:56