将日期插入我的SQL Server表时出错

时间:2018-04-11 18:04:59

标签: sql-server date insert sql-insert sql-date-functions

我有一个名为TPatientVisits的表格,当我尝试插入日期时,我收到此错误。我不太确定为什么错误存在,我非常确定我的日期格式正确,因为我在不同的表中使用相同的格式并且它们有效。

  

Msg 241,Level 16,State 1,Line 292
  从字符串转换日期和/或时间时转换失败。

以下是我的表格插页,任何人都可以告诉我为什么这不起作用

INSERT INTO TPatientVisits (intPatientID, dtmVisit, intVisitTypeID, intWithdrawReasonID)
VALUES (1, '01/01/2017', 1, null),
       (1, '01/02/2017', 2, null),
       (1, '01/03/2017', 3, 3),
       (2, '02/02/2017', 1, null),
       (2, '02/03/2017', 2, null),
       (2, '02/04/2017', 3, 2),
       (3, '08/14/2017', 1, null),
       (3, '08//15/2017',  2, null),
       (3, '08//16/2017', 3, 6),
       (4, '12/12/2017', 1, null),
       (4, '12/13/2017', 2, null),
       (4, '12/14/2017', 3, 1),
       (5, '01/06/2017', 1, null),
       (5, '01/07/2017', 2, null),
       (5, '01/08/2017', 3, 5),
       (6, '06/06/2017', 1, null),
       (6, '06/07/2017', 2, null),
       (6, '06/08/2017', 3, 6),
       (7, '11/15/2017', 1, null),
       (7, '11/16/2017', 2, null),
       (7, '11/17/2017', 3, 2),
       (8, '11/16/2017', 1, null),
       (8, '11/17/2017', 2, null),
       (8, '11/18/2017', 3, 5),
       (9, '03/03/2017', 1, null),
       (9, '03/04/2017', 2, null),
       (9, '03/05/2017', 3, 4),
       (10, '08/08/2017', 1, null),
       (10, '08/09/2017', 2, null),
       (10, '08/10/2017', 3, 5)

1 个答案:

答案 0 :(得分:0)

Wei在上面是正确的(+ 1'd),因为将值插入日期列意味着值必须与日期格式兼容,并且'08 // 15/2017'和'08 // 16/2017'是不。

因此,您必须浏览硬编码的VALUES列表并确保所有日期都是日期。如果这些值是从表中选择的,那么使用TRY_CAST或ISDATE()会起作用,尽管我听说ISDATE()包含一些误报。