尝试输入时间时,从字符串转换日期和/或时间时转换失败

时间:2017-11-20 20:27:34

标签: sql sql-server

我试图将此记录插入此表但实际上它不起作用而且我完全糊涂了

INSERT INTO Attendance_Records 
VALUES ('12/12/2017', '1:00:00AM', '2:00:00AM', 'x y')

CREATE TABLE [dbo].[Attendance_Records] 
(
    [date] DATE NOT NULL,
    [staff] VARCHAR(30) NOT NULL,
    [start_time] TIME(7) NULL,
    [end_time] TIME(7) NULL,

    PRIMARY KEY CLUSTERED ([date] ASC, [staff] ASC),
    FOREIGN KEY ([staff]) 
          REFERENCES [dbo].[Staff_Members] ([username]) 
          ON DELETE CASCADE ON UPDATE CASCADE
)

3 个答案:

答案 0 :(得分:2)

如评论中所述 - 这是因为您忘记了STAFF专栏。您必须以正确的顺序插入它们,或在插入上指定顺序

INSERT INTO Attendance_Records ([date],[start_time],[end_time],[staff])
VALUES ('12/12/2017', '1:00:00AM', '2:00:00AM', 'x y')

...或

INSERT INTO Attendance_Records 
VALUES ('12/12/2017','x y', '1:00:00AM', '2:00:00AM')

答案 1 :(得分:0)

看起来您的插入列中的列顺序搞乱了吗?你试图将值'x y'插入TIME列会给你一个错误。

编辑它或许:

INSERT INTO Attendance_Records
VALUES ('12/12/2017', 'x y', '1:00:00AM', '2:00:00AM')

答案 2 :(得分:0)

您似乎没有在插入中指定列名,因此它会按数据库顺序应用它们。 ' x y'被分配到end_time。