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

使用SUBSTRING处理SQL Server中[First released]列的格式统一问题

处理SQL Server中日期与区域标识混合字段的标准化问题

1. 识别异常数据

通过TRY_CONVERT函数判断字段前缀能否转换为有效日期,以此区分正常/异常数据:

SELECT 
    ID,
    [First released],
    CASE 
        WHEN TRY_CONVERT(DATE, LEFT([First released], 10)) IS NOT NULL THEN '正常'
        ELSE '异常'
    END AS 数据状态
FROM @tbl;

2. 统计需修改的异常数据数量

直接过滤出无法转换为有效日期的行,统计总数:

SELECT COUNT(*) AS 异常数据总数
FROM @tbl
WHERE TRY_CONVERT(DATE, LEFT([First released], 10)) IS NULL;

3. 更新数据为标准日期格式

针对两种异常场景分别处理:

  • 带完整日期+区域标识的(如2006-02-28NA):截取前10位有效日期;
  • 仅年份+区域标识的(如2004PAL):提取年份后补默认的-01-01(业务规则可按需调整)。
UPDATE @tbl
SET [First released] = CASE
    WHEN TRY_CONVERT(DATE, LEFT([First released], 10)) IS NOT NULL 
        THEN LEFT([First released], 10)
    ELSE CONCAT(
        SUBSTRING([First released], 1, PATINDEX('%[^0-9]%', [First released]) - 1),
        '-01-01'
    )
END
WHERE TRY_CONVERT(DATE, LEFT([First released], 10)) IS NULL;

4. 验证更新结果

执行更新后,查询确认所有行已转为YYYY-MM-DD格式:

SELECT ID, [First released] FROM @tbl;

预期输出:

IDFirst released
12006-02-28
22004-01-01

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:15:38