mysql DATE数据类型没有采用正确的值

时间:2016-04-30 20:09:34

标签: mysql sql mysql-workbench

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

create table ddate(
ddate date);

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

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

但是它给了我一个警告

  

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

2 个答案:

答案 0 :(得分:3)

日期文字用单引号括起来,就像字符串文字一样。

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

如果没有文字周围的单引号,MySQL会将其作为数值进行评估,计算结果为:

2010 - 04 - 12 

这使得原始陈述基本上等同于

insert into ddate(ddate)value( 1994 )

答案 1 :(得分:1)

您必须使用单引号作为日期文字:

public class Record
  {
    private Set<Employee> employeeSet = new HashSet<Employee>();

    public Record()
    {
        newEmployee("1");
        newEmployee("2");
        newEmployee("3");
    }

    public void newEmployee(String employNumber)
    {
        Employee newEmp = new Employee(employNumber);
        employeeSet.add(newEmp);
    }
 }

Demo here