我正在與我們的人力資源部門合作,計算在特定時間內僱用的臨時工數量。用空值代替壞日期
我正在從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' –