在MS SQL Server中插入该记录用什么数据类型?报错如何解决?
报错根因
你遇到的语法错误和JOINING_DATE字段的类型无关,问题出在INSERT语句中的时间字面值没有用单引号包裹:SQL解析器会把未加引号的2014-02-20 09:00:00从空格处拆分为两个独立的片段,无法识别后半段09:00:00的语法含义,因此抛出Incorrect syntax near '09'的报错。
修复方案
给插入语句中的时间值添加单引号即可,修正后的INSERT语句如下:
INSERT INTO [dbo].[Worker] ([Worker_id], [FIRST_NAME], [LAST_NAME],[SALARY], [JOINING_DATE], [DEPARTMENT]) VALUES (001, 'Monika', 'Arora', 100000, '2014-02-20 09:00:00', 'HR')
字段类型修改注意事项
- 如果使用
Date类型,该类型仅存储日期不存储时间,插入后09:00:00部分会被截断 - 如果使用
SmallDateTime类型,时间精度为1分钟,且仅支持1900-01-01到2079-06-06范围内的时间,超出范围会触发报错 - 如果不需要兼容旧版本SQL Server,优先使用
DateTime2类型,精度更高且取值范围更广
内容的提问来源于stack exchange,提问作者Shripad Kumar
相关产品推荐
相关产品推荐

