2017-02-20 47 views
0

当我试图插入另一个表中的信息时,它应该是空的时候从date列返回'1900-01-01'。在导入表上,数据类型为varchar,我想在表中插入信息是date数据类型。有在EndDate列一些空值应插入为空,但它返回“1900-01-01”SQL Server:插入日期返回错误的值

Insert into tblServiceHistory (PersonID, PositionID, CommitteeID,StartDate, EndDate) 
    Select distinct 
     PersonID, PositionID, CommitteeID, StartDate, EndDate 
    From 
     tblCommitteeOfficers_IMPORT 
    Where 
     PersonID is not null 
     And StartDate is not null 
     And PositionID is not null 
     And CommitteeID is not null 
+0

你会出现在你的数据的价值'1900-01-01'。 –

回答

2

转换为日期空白弦翻中'1900-01-01'

例如select convert(date,'')返回'1900-01-01'

您可以使用nullif()在您的select中将空字符串变成null值。

试试这个:

Insert into tblServiceHistory (PersonID, PositionID, CommitteeID,StartDate, EndDate) 
Select distinct PersonID, PositionID, CommitteeID, nullif(StartDate,''), nullif(EndDate,'') 
From tblCommitteeOfficers_IMPORT 
Where PersonID is not null 
    AND nullif(StartDate,'') is not null 
    AND PositionID is not null 
    AND CommitteeID is not null 
+0

It works thanks –

+0

@TimothyWong乐意帮忙! – SqlZim