这个问题在这里已有答案:
我正在尝试将值插入表中。目前有80个插入语句。 其中74个工作得很好。其中6个我收到以下错误:
将varchar数据类型转换为日期时间数据类型会导致超出范围的值。
我不知道为什么,因为它们与其他人没有什么不同。 以下是一些示例数据:
CREATE TABLE Chair
(
ChairID INT,
RoomID INT,
xyz INT,
zyx INT,
time DATETIME,
CONSTRAINT pkChar PRIMARY KEY(ChairID, RoomID,time)
);
这些插入语句有效:
INSERT INTO Chair
VALUES (1,1,1,32,CONVERT(DATETIME,'12.01.2017 08:32:12'));
INSERT INTO Chair
VALUES (1,1,0,50,CONVERT(DATETIME,'12.01.2017 08:33:12'));
这些似乎不起作用:
INSERT INTO Chair
VALUES (2,1,1,63,CONVERT(DATETIME,'16.02.2017 08:00:34'));
INSERT INTO Chair
VALUES (2,1,0,91,CONVERT(DATETIME,'16.02.2017 08:54:12'));
我很感谢任何解决这个问题的方法!
该错误是因为您的会话DATEFORMAT
设置不是DMY。执行DBCC USEROPTIONS
进行验证。
我建议您使用ISO16601格式,如'2017-02-16T08:54:12',以避免歧义和对会话设置的依赖。