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

SSIS派生列中移除日期值的EST时区信息失败求解决

解决日期字符串移除时区及表达式解析错误问题

首先,先搞定移除(EST)的需求:

  • 直接用字符串截取或替换就能实现,比如找到(的位置,取它左边的所有内容。以多数支持SQL语法的工具为例:
    -- 方法1:用LEFT和CHARINDEX截取到(之前的部分
    LEFT([Data Date], CHARINDEX('(', [Data Date]) - 1)
    -- 方法2:用REPLACE替换掉(EST)为空
    REPLACE([Data Date], '(EST)', '')
    
    这两种方法都能直接得到22-Mar-2023 08.01.44 PM,比你写的复杂逻辑简单得多。

然后看你原来的代码为什么报错表达式无法解析:

  • 你用了连续链式的三元运算符,很多工具(比如Tableau、部分SQL方言)不支持这种写法,这类场景更推荐用CASE WHEN语句替代,语法兼容性更好。
  • 另外你的代码只处理了日期部分(日-月-年),完全没涉及时间和时区的处理,和你最初移除(EST)的需求不匹配。

如果你的真实需求是移除时区同时把日期格式转成数字格式(比如22-03-2023),可以用下面的修正代码(以支持CASE WHEN的环境为例):

SUBSTRING([Data Date], 1, 2) + '-' +
CASE SUBSTRING([Data Date], 4, 3)
    WHEN 'JAN' THEN '01'
    WHEN 'FEB' THEN '02'
    WHEN 'MAR' THEN '03'
    WHEN 'APR' THEN '04'
    WHEN 'MAY' THEN '05'
    WHEN 'JUN' THEN '06'
    WHEN 'JUL' THEN '07'
    WHEN 'AUG' THEN '08'
    WHEN 'SEP' THEN '09'
    WHEN 'OCT' THEN '10'
    WHEN 'NOV' THEN '11'
    WHEN 'DEC' THEN '12'
END + '-' +
SUBSTRING([Data Date], 8, 4)

如果还要保留时间部分,就在后面加上' ' + SUBSTRING([Data Date], 13, 11)(原字符串中22-Mar-2023之后是空格,从第13位开始到(之前的时间部分共11个字符:08.01.44 PM)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:37:25