2016-11-23 46 views
0

我在下面的代碼中遇到問題。它給我這個錯誤: 轉換日期和/或時間從字符串轉換失敗。問題在datetime列中插入NULL字段

datevalue實際上是NULL(不是文本NULL),日期格式爲2016-12-02。

任何人都知道如何避開這個,用演員們嘗試和轉換成日期時間,該工作處理不當....

select PersonalID 
    ,[LeaveDate] as [LeaveDate] 
into 
    #temp1 
from (SELECT 
     [staffid] as PersonalID 
     ,[leaving_d] as [LeaveDate] 
    FROM 
     rcmsql4.[SSTRESS].[dbo].[vwGetStaffDetails] 
    UNION ALL 
    SELECT 
     [StudentId] as PersonalID 
     , NULL 
    FROM 
     rcmsql4.[SSTRESS].[dbo].[vwGetResearchStudentDetails]) x 
GROUP BY 
    PersonalID 
    ,[LeaveDate] 


INSERT INTO [dbo].[STG1StaffProfiles] 
      ([PersonalID] 
      ,[LeaveDate] --datetime field) 
    select * from #temp1 
+0

整理你的代碼。 (刪除空行等) – jarlh

+0

看起來像[LeaveDate]具有無效的文本值...你能找出它們是什麼樣的?例如,空文本:''或NULL文本:'NULL'... –

+0

所以它們是實際值NULL而不是文本NULL –

回答

0

嘗試鑄造:

INSERT INTO [dbo].[STG1StaffProfiles] 
     ([PersonalID] 

     ,[LeaveDate] --datetime field 
    ) 
SELECT [PersonalID],CAST(COALESCE([LeaveDate],'01-01-1999') as DATE) 
FROM #temp1 
+0

我想保留NULL,NULLs不能替換爲1999 –

+0

然後離開'COALESCE()',嘗試沒有它。 @LaurenBuxton – sagi

+0

仍然是同一問題消息241,級別16,狀態1,行4 轉換日期和/或時間從字符串轉換失敗。 –