用Null替换错误的日期

时间:2013-07-23 13:39:36

标签: sql ssis expression

我正在与人力资源部门合作开展一个项目,该项目计算在特定时间内聘用的临时数量。

我正在从每月自动导出的SAP系统提供的Excel电子表格中导入数据。 [TempHireDate]列在单元格中具有00/00/0000而不是NULL,不需要日期。我想运行一个派生列,剥离00/00/0000并将其替换为NULL值,因为我将其导入表中。

我相信派生专栏是答案,但我很难让任何标准表达式起作用。我认为REPLACE表达式可行,但我认为我做得不对。

REPLACE(00/00/0000,[TempHireDate],NULL)

我做了一个搜索,发现了一些其他的例子,但也无法使它们工作。

(Date_To_Check ==“00/00/0000”||(DT_Date)Date_To_Check<(DT_DATE)“1753-1-1”)? NULL(DT_DATE):( DT_Date)Date_To_Check

ISNULL([第0栏])|| LEN(TRIM((DT_WSTR,10)[第0列]))== 0 || [第0列] ==“00/00/0000”空(DT_DATE):( DT_DBDATE)((DT_WSTR,10)[第0列])

既没有工作也没有,我认为我做错了什么。

有没有人对我能做什么或如何让这些表达方式起作用有任何建议?

2 个答案:

答案 0 :(得分:1)

SELECT NullIf(TempHireDate, '00/00/0000')
FROM   your_table

答案 1 :(得分:1)

添加为新列

[TempHireDate] == "00/00/0000" ? NULL(DT_WSTR,10) : [TempHireDate]