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

SQL Server中如何将Nvarchar类型的五位数字日期批量转为Datetime?

SQL Server批量转换Excel日期序列号为实际日期

你提到的40542、40046这类五位数字是Excel日期序列号,本质是从1900-01-01开始累计的天数(Excel存在1900年闰年的bug,实际需要用1899-12-30作为基准来修正)。以下是批量转换的完整步骤:

1. 先验证转换结果(避免直接更新出错)

执行查询语句确认转换后的日期是否正确:

SELECT 
    YourDateColumn AS 原序列号,
    DATEADD(day, CAST(YourDateColumn AS INT), '1899-12-30') AS 转换后日期
FROM YourTableName

替换YourDateColumn为你的日期列名,YourTableName为表名。

2. 批量更新表中数据

确认转换结果无误后,执行批量更新语句,将序列号替换为标准日期字符串:

UPDATE YourTableName
SET YourDateColumn = CONVERT(NVARCHAR(10), DATEADD(day, CAST(YourDateColumn AS INT), '1899-12-30'), 23)

这里23是SQL Server的日期格式代码,对应yyyy-MM-dd,保证日期格式统一规范。

3. 推荐:修改列数据类型为DATE(可选但更合理)

原列类型是NVARCHAR(255),存储日期会浪费空间且容易出错,建议改为DATE类型:

-- 先确保所有数据已转换为有效日期,再执行修改
ALTER TABLE YourTableName
ALTER COLUMN YourDateColumn DATE

注意事项

  • 若列中存在非数字值,转换会报错,可先筛选出异常行处理:
SELECT * FROM YourTableName WHERE ISNUMERIC(YourDateColumn) = 0
  • 操作前建议备份表数据,避免意外错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:21:07