2017-02-20 1 views
0

Когда я пытаюсь вставить информацию из другой таблицы, она возвращает «1900-01-01» из столбца date, когда он должен быть пустым. В таблице импорта тип данных - 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(), чтобы превратить пустые строки в null значений в select.

Попробуйте это:

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

Это сработало Спасибо –

+0

@TimothyWong Счастливые помочь! – SqlZim

 Смежные вопросы

  • Нет связанных вопросов^_^