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

SQL Server新手:如何用CASE WHEN将2022-03-01 00:00:00.000转为yyyymmdd

解决方案

首先,你遇到的FORMAT(pol_eff_dt, 'yyyymmdd')返回20220001的问题,是因为格式字符串中小写的mm代表分钟,而你的日期时间分钟部分是00,所以替换成了00。正确的月份格式符是大写的MM,修正后的语句应该是:

FORMAT(pol_eff_dt, 'yyyyMMdd')

如果需要结合CASE WHEN使用(比如针对不同条件处理日期转换),可以参考下面的示例:

SELECT 
    CASE 
        -- 可根据实际需求添加判断条件,比如日期不为空
        WHEN pol_eff_dt IS NOT NULL THEN FORMAT(pol_eff_dt, 'yyyyMMdd')
        -- 其他条件下的返回值
        ELSE '无有效日期'
    END AS formatted_date
FROM your_table_name;

另外,SQL Server中还有更高效的日期转换方式,推荐使用CONVERT函数(性能优于FORMAT),同样可以结合CASE WHEN:

SELECT 
    CASE 
        WHEN pol_eff_dt IS NOT NULL THEN CONVERT(VARCHAR(8), pol_eff_dt, 112)
        ELSE '无有效日期'
    END AS formatted_date
FROM your_table_name;

其中112是SQL Server预定义的格式代码,对应yyyymmdd格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 16:45:58