Я получаю эту ошибку "Ошибка преобразования при преобразовании даты и/или времени из символьной строки, когда я вставляю данные в свою таблицу

Я создал следующую таблицу, и когда я пытаюсь вставить данные

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
)

person Community    schedule 27.04.2017    source источник
comment
Спасибо за помощь.   -  person    schedule 27.04.2017


Ответы (1)


Вы можете заметить 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.

person John Cappelletti    schedule 27.04.2017
comment
Спасибо за помощь. - person ; 27.04.2017