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

在SQL Server中将日期从1980-12-17 00:00:00.000改为17-Dec-80报错求助

解决SQL Server修改日期字段时的"Invalid column name 'Dec'"错误

你遇到的这个报错原因其实很直白:你没给日期字符串加单引号。SQL Server会把17-Dec-80当成数学运算式——也就是17减去名为Dec的列再减去80,但你的表根本没有叫Dec的列,自然就抛出错误了。

正确的UPDATE语句写法

把目标日期用单引号括起来,让SQL Server识别成日期字符串就行:

UPDATE emp 
SET HIREDATE = '17-Dec-80' 
WHERE EMPNO = 7369;

更稳妥的写法(避免格式解析坑)

如果你的SQL Server实例的日期格式设置不兼容DD-Mon-YY这种写法,可能还会出现日期解析失败的问题。这种情况下,推荐用显式转换指定格式代码,彻底避免歧义:

UPDATE emp 
SET HIREDATE = CONVERT(DATETIME, '17-Dec-80', 106) 
WHERE EMPNO = 7369;

这里的106是SQL Server对应DD Mon YY格式的专用代码,能精准解析你提供的日期字符串。

额外提醒

SQL Server里日期/时间类型的值是按二进制格式存储的,显示格式只和查询时的设置有关。如果你只是想让查询结果以17-Dec-80的形式展示,完全没必要修改存储的值,查询时转换格式就行:

SELECT FORMAT(HIREDATE, 'dd-MMM-yy') AS HIREDATE_FORMATTED 
FROM emp 
WHERE EMPNO = 7369;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:11:24