我正在尝试将 SSIS 中格式为 2023-01-02T00:00 的 varchar 日期转换为 DT_DBTIMESTAMP。目前,我在派生列转换中使用以下表达式:
(DT_DBTIMESTAMP)(SUBSTRING([start_at], 1, 4) + "-" + SUBSTRING([start_at], 6, 2) + "-" + SUBSTRING([start_at], 9, 2) + " " + SUBSTRING([start_at], 12, 5) + ":00")
这种方法运行正常,但遇到 NULL 值时会失败。为了处理 NULL,我尝试修改表达式,如下所示:
ISNULL([start_at]) ? NULL(DT_DBTIMESTAMP) : (DT_DBTIMESTAMP)(SUBSTRING([start_at], 1, 4) + "-" + SUBSTRING([start_at], 6, 2) + "-" + SUBSTRING([start_at], 9, 2) + " " + SUBSTRING([start_at], 12, 5) + ":00")
但是,此表达式未按预期工作。对于在此转换中处理 NULL 值,有什么建议吗?