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

SQL Server 2016日期列修改:保留年份,替换月日为05-20

解决SQL Server 2016日期列替换月日为固定值的问题

你之前用的DATEFROMPARTS(YEAR([你的日期列名]), 5, 20)思路偏了——这个函数是给原日期增加5个月,而不是替换月日部分,难怪达不到预期效果。针对你的需求(保留原年份,统一改成05-20),给你两个靠谱的方案:

方案1:用DATEFROMPARTS函数(推荐)

SQL Server 2012及以上版本支持这个函数,它可以直接通过年份、月份、日期参数生成新的日期,类型安全且代码直观:

-- 先测试结果是否符合预期
SELECT 
    [你的日期列名] AS 原日期,
    DATEFROMPARTS(YEAR([你的日期列名]), 5, 20) AS 修改后日期
FROM [你的表名];

-- 确认没问题后执行更新
UPDATE [你的表名]
SET [你的日期列名] = DATEFROMPARTS(YEAR([你的日期列名]), 5, 20);

方案2:字符串拼接+类型转换

如果习惯用字符串处理的方式,也可以提取年份后拼接固定的月日字符串,再转成DATE类型:

-- 先测试
SELECT 
    [你的日期列名] AS 原日期,
    CAST(CAST(YEAR([你的日期列名]) AS VARCHAR(4)) + '-05-20' AS DATE) AS 修改后日期
FROM [你的表名];

-- 执行更新
UPDATE [你的表名]
SET [你的日期列名] = CAST(CAST(YEAR([你的日期列名]) AS VARCHAR(4)) + '-05-20' AS DATE);

重要提醒

执行UPDATE操作前一定要先跑SELECT测试,确认修改后的结果完全符合你的要求,避免误操作导致数据错误!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:27:49