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

SQL Server中字段赋值及数值与日期时间相加获取新日期问题

嘿,我完全懂你遇到的坑——因为DESIRED TRANSIT TIME是字符串类型,直接和日期列相加时,数据库会默认把两者都转成字符串拼接,而不是做你想要的日期+天数的计算。咱们来一步步搞定这个问题:

核心思路

先根据字符串前缀提取对应的天数数值,再把这个数值转换成日期间隔,最后和原日期列相加得到新日期。

具体实现(分主流数据库)

1. 第一步:用CASE WHEN匹配前缀赋值天数

不管用哪个数据库,第一步都是通过字符串函数取前缀,再映射成对应的天数:

CASE 
    WHEN LEFT(`DESIRED TRANSIT TIME`, 1) = 'A' THEN 10  -- 匹配以A开头的情况
    WHEN LEFT(`DESIRED TRANSIT TIME`, 1) = 'C' THEN 5   -- 匹配以C开头的情况
    ELSE 0  -- 可以根据需求设置其他前缀的默认值,比如0天或者NULL
END AS transit_days

这里用LEFT()函数取列的第一个字符,确保只匹配前缀。

2. 第二步:将天数和原日期相加(分数据库)

不同数据库的日期加法语法略有不同,给你几个常用的例子:

MySQL/MariaDB 版本

用DATE_ADD()函数或者直接用+ INTERVAL语法:

SELECT 
    REVISED_EX_FACTORY,
    `DESIRED TRANSIT TIME`,
    -- 直接计算新出厂日期
    DATE_ADD(REVISED_EX_FACTORY, INTERVAL 
        CASE 
            WHEN LEFT(`DESIRED TRANSIT TIME`, 1) = 'A' THEN 10
            WHEN LEFT(`DESIRED TRANSIT TIME`, 1) = 'C' THEN 5
            ELSE 0
        END DAY
    ) AS NEW_EX_FACTORY_DATE
FROM your_table_name;
SQL Server 版本

用DATEADD()函数,注意参数顺序是(间隔类型, 天数, 原日期):

SELECT 
    REVISED_EX_FACTORY,
    [DESIRED TRANSIT TIME],
    DATEADD(DAY, 
        CASE 
            WHEN LEFT([DESIRED TRANSIT TIME], 1) = 'A' THEN 10
            WHEN LEFT([DESIRED TRANSIT TIME], 1) = 'C' THEN 5
            ELSE 0
        END,
        REVISED_EX_FACTORY
    ) AS NEW_EX_FACTORY_DATE
FROM your_table_name;
PostgreSQL 版本

直接用+ INTERVAL语法,注意要把天数转换成间隔类型:

SELECT 
    REVISED_EX_FACTORY,
    "DESIRED TRANSIT TIME",
    REVISED_EX_FACTORY + 
        CASE 
            WHEN LEFT("DESIRED TRANSIT TIME", 1) = 'A' THEN INTERVAL '10 days'
            WHEN LEFT("DESIRED TRANSIT TIME", 1) = 'C' THEN INTERVAL '5 days'
            ELSE INTERVAL '0 days'
        END AS NEW_EX_FACTORY_DATE
FROM your_table_name;

额外提醒

  • 如果REVISED_EX_FACTORY列不是日期类型(比如存的是字符串),需要先转成日期再计算,比如MySQL里用CAST(REVISED_EX_FACTORY AS DATE),SQL Server用CONVERT(DATE, REVISED_EX_FACTORY)。
  • 记得处理异常情况:比如列值为空、前缀不是A/C的情况,通过ELSE设置合理的默认值,避免结果出现NULL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:27:39