如何使用数据类型时间在SQL Server中插入时间

时间:2018-01-28 15:29:48

标签: sql sql-server

我正在编写查询以向表中插入数据,但我一直收到错误:

  

'附近的语法不正确:'`

这是创建表格的查询:

php -m

这是我试图执行的CREATE TABLE Consultation_Slot ( Slot_ID CHAR(7) NOT NULL PRIMARY KEY, Appointment_Purpose VARCHAR(255) NULL, Appointment_Status VARCHAR(11) NOT NULL, Cancellation_Reason VARCHAR(255) NULL, Slot_Time time(7) NOT NULL, Slot_Date DATE NOT NULL, Slot_Day CHAR(10) NOT NULL, Room_No VARCHAR(5) NOT NULL, Lecturer_ID CHAR(3) NOT NULL REFERENCES Lecturer(Lecturer_ID), Student_ID CHAR(6) NOT NULL REFERENCES Student(Student_ID), Schedule_ID CHAR(5) NOT NULL REFERENCES Weekly_Consultation_Schedule(Schedule_ID) ) 语句:

INSERT

1 个答案:

答案 0 :(得分:4)

您需要使用撇号包围DATETIME值:

INSERT INTO Consultation_Slot VALUES
       (1000000,'I need to learn maths','avaliable','', '13:30', '1-28-2018',
        'Sunday', 'RN001', 1111, 880001, 30001);

只有数字类型值不需要撇号。

还建议使用撇号包围查询中的所有其他值。确实它们是数字,但列类型是基于字符串的,因此将值作为数字提供将导致不必要的隐式转换:

INSERT INTO Consultation_Slot VALUES
       ('1000000','I need to learn maths','avaliable','', '13:30', '1-28-2018',
        'Sunday', 'RN001', '1111', '880001', '30001');

但是,您的表格设计似乎不正确,其中一些列应该是数字而不是字符串,因此请查看您的表格设计。