You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在SQL Server中使用time类型插入时间时遇语法错误求助

解决SQL插入语句的':'语法错误问题

嘿,我来帮你搞定这个报错问题!你遇到的':'附近语法错误,核心原因是时间和日期值没有用单引号包裹,SQL没法正确解析13:30这种写法,把它当成了数字加非法符号。除此之外,还有几个小细节需要调整,才能顺利插入数据:


必须修正的几个点:

  • 字符/日期/时间类型值加单引号:像Slot_ID(CHAR类型)、Slot_Time、Slot_Date,还有所有外键字段(Lecturer_ID、Student_ID等)都是字符/日期类型,必须用单引号把值括起来,不然SQL会把它们当成数字或语法符号。
  • 日期格式用标准写法:SQL Server默认认YYYY-MM-DD格式,你写的1-28-2018容易产生歧义,改成2018-01-28更稳妥。
  • 字段长度匹配:Lecturer_ID定义的是CHAR(3),你插的1111是4位,会触发长度错误,得改成3位的有效值比如111。
  • 拼写修正:avaliable应该是available,虽然这不是语法错误,但会导致状态值不符合预期哦。

修正后的完整INSERT语句:

INSERT INTO Consultation_Slot 
VALUES (
    '1000000', -- Slot_ID CHAR(7) 用单引号包裹
    'I need to learn maths',
    'available', -- 修正拼写错误
    '',
    '13:30', -- time(7) 类型加单引号,简写也能被识别
    '2018-01-28', -- 标准日期格式
    'Sunday',
    'RN001',
    '111', -- 符合Lecturer_ID CHAR(3)的长度要求
    '880001',
    '30001'
);
GO

进阶优化建议:

建议在INSERT语句里显式指定字段列表,这样即使以后表结构有变动,这条语句也不容易出错,示例如下:

INSERT INTO Consultation_Slot (
    Slot_ID, Appointment_Purpose, Appointment_Status,
    Cancellation_Reason, Slot_Time, Slot_Date, Slot_Day,
    Room_No, Lecturer_ID, Student_ID, Schedule_ID
)
VALUES (
    '1000000', 'I need to learn maths', 'available',
    '', '13:30', '2018-01-28', 'Sunday',
    'RN001', '111', '880001', '30001'
);
GO

内容的提问来源于stack exchange,提问作者Mango

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:41:43