我收到这个错误"当我将数据插入表格时,从字符stri转换日期和/或时间时转换失败

时间:2017-04-27 01:42:14

标签: sql sql-server

我创建了下表,当我尝试插入数据时

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
)

1 个答案:

答案 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