将NULL插入DATE字段MySQL 5.6

时间:2014-06-24 16:15:56

标签: php mysql

我似乎遇到了在MySQL 5.6中的DATE字段中插入NULL的问题。错误是错误代码:1292。日期值不正确:''对于专栏' StartDate'在第1行。

这是表格说明。 StartDate和EndDate都是DATE类型,NULLABLE和默认值NULL。

有效位(1)否b' 1'
ClientContact varchar(255)是
ClientID int(11)unsigned NO MUL
ClientReferenceNumber varchar(100)是
说明mediumtext是
结束日期是
每小时有效小时(6,2)是
小时int(11)是
备注文本是
OffShoreAmount十进制(10,2)是
OnShoreAmount十进制(10,2)是
ParentWorkOrderID int(11)unsigned YES MUL
ReferenceNumber varchar(100)是
开始日期是
TotalAmount decimal(10,2)是
WorkOrderID int(10)unsigned NO PRI auto_increment WorkOrderTypeID int(10)unsigned NO MUL

但是以下查询不起作用。

INSERT INTO WorkOrder
    (ParentWorkOrderID, WorkOrderTypeID, ClientID, ReferenceNumber, ClientReferenceNumber,
    Description, StartDate, EndDate, OnShoreAmount, OffShoreAmount, TotalAmount, HourlyRate, 
    Hours, Notes, Active, ClientContact)
VALUES (NULL, 1, 89, 'et-care-001', 'HG453443', '', '', '', 10, 0, 10, NULL, NULL,
        '', 1, 'Jebus');

INSERT INTO WorkOrder
    (ParentWorkOrderID, WorkOrderTypeID, ClientID, ReferenceNumber, ClientReferenceNumber,
    Description, StartDate, EndDate, OnShoreAmount, OffShoreAmount, TotalAmount, HourlyRate, 
    Hours, Notes, Active, ClientContact)
VALUES (NULL, 1, 89, 'et-care-001', 'HG453443', '', '', '', 10, 0, 10, 'NULL', 'NULL',
        '', 1, 'Jebus');

我很肯定这是在MySQL 5.5中工作的。将null插入字段的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

插入NULL而不是''。此外,'Null'不等于NULL

INSERT INTO WorkOrder (
    ParentWorkOrderID, 
    WorkOrderTypeID, 
    ClientID, 
    ReferenceNumber, 
    ClientReferenceNumber,   
    Description, 
    StartDate, 
    EndDate, 
    OnShoreAmount, 
    OffShoreAmount, 
    TotalAmount, 
    HourlyRate,  
    Hours, 
    Notes, 
    Active, 
    ClientContact
    ) VALUES (
    NULL, 
    1, 
    89, 
    'et-care-001', 
    'HG453443', 
    '', 
    '',         
    '', 
    10, 
    0, 
    10, 
    NULL, 
    NULL,
    NULL, 
    1, 
    'Jebus');

答案 1 :(得分:0)

将null插入字段的正确方法是使用NULL

例如,对于字段,您可以指定'thisisastring'1等值。 NULL也是有效的,只有在字段允许空值时才可以接受。注意:''表示空字符串,不为空,'null'表示包含单词null的字符串。

对于空检查,您使用IS NULLIS NOT NULL

希望有所帮助。