我创建了下表,当我尝试插入数据时
INSERT INTO ORDR
VALUES ('OID3', 'S0574', 'C124', 'Capricos', 'Item7', '2016-sep-13', 2, 'Cash', 3, 'Approved', 'Deliver', 'phone', NULL, 12);
我收到此错误
从字符串转换日期和/或时间时转换失败。
我的表结构:
CREATE TABLE ORDR
(
OrderID CHAR(8) PRIMARY KEY,
staffID CHAR(5),
CustomerId CHAR(5),
foodName VARCHAR(15),
ItemCode CHAR(5),
date DATE,
tax INTEGER,
PaymentMethod VARCHAR(10),
totalAmount INTEGER,
paymentApproved CHAR(8),
Status VARCHAR(10),
Description VARCHAR(12),
bankName CHAR(5),
bankCode INTEGER,
FOREIGN KEY(ItemCode)
REFERENCES MenueItem (ItemCode)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(staffID)
REFERENCES Staff (staffID)
ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(CustomerId)
REFERENCES Customer (CustomerId)
ON UPDATE CASCADE ON DELETE NO ACTION
)
答案 0 :(得分:0)
您可能会注意到convert(date,'2016-sep-13')
返回2016-09-13
INSERT INTO ORDR VALUES ('OID3', 'S0574','C124','Capricos', 'Item7' ,convert(date,'2016-sep-13'),2,'Cash', 3,'Approved' ,'Deliver', 'phone',NULL,12);
如果您在2012年以上,则可能需要try_convert()
。即使有虚假的日期,它也不会失败,但会产生NULL
。