我正在与我们的人力资源部门合作,计算在特定时间内雇用的临时工数量。用空值代替坏日期
我正在从Excel电子表格导入数据,该数据来自我们的SAP系统在月度自动导出中提供的数据。 [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”)?(日期_检查==“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)[Column 0]))== 0 || [0列] ==“00/00/0000”NULL(DT_DATE):(DT_DBDATE)((DT_WSTR,10)[Column 0])
既没有工作,也没有再次我认为我做错了什么。
有没有人有什么建议我可以做什么或如何让这些表达式工作?
你在Excel做这个或SQL代码? CASE WHEN DT_DATE = '00/00/0000'THEN NULL ELSE DT_DATE END –
我正在从Excel导入到SQL临时表。我已经有一个包含几个派生列的包进行转换。我只需要添加这一个转变,以便让人力资源希望看到的新计数。我去了源代码,但是这个日期列在主控(SAP)系统中是硬编码的,不能被修改。因此,我唯一的解决方案是在将数据导入暂存表中时,去掉00/00/0000。 –
您可以在导入数据后在表上运行更新:UPDATE staging_table SET TempHireDate = NULL其中TempHireDate = '00/00/0000' –