我似乎遇到了在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插入字段的正确方法是什么?
答案 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 NULL
或IS NOT NULL
希望有所帮助。