Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Romanov-krd Member Откуда: Сообщений: 122 |
В БД терадата есть значения вида 0001-01-01 00:00:00.0 и нормальных дат вида 2018-09-01 00:00:00.0 в столбце формата timestamp. при перезагрузке данных в ms sql server через oracle data integrator в столбец формата datetime2 возникает ошибка ODI-30038: OS command returned 1. Error details are []. как выяснилось данные 0001-01-01 00:00:00.0 не подходят для вставки. пробовал их расписать кейсами case when begin_dt='0001-01-01 00:00:00.0' then null else begin_dt end или использовать convert ничего не подходит Как можно это исправить? Т.е. сами данные вида 0001-01-01 00:00:00.0 не нужны и их можно заменить на null или другие значения |
13 сен 19, 10:42 [21970155] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
1. В MSSQL тип TIMESTAMP - это не дата и не время. 2. Почему в MSSQL у меня работает это: DECLARE @D DATETIME2='00010101'; DECLARE @T TABLE(D DATETIME2); INSERT @T(D) VALUES(@D); SELECT * FROM @T;??? |
13 сен 19, 10:50 [21970163] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
Нужен NULL вместо '00010101'?DECLARE @D DATETIME2='00010101'; DECLARE @T TABLE(D DATETIME2); INSERT @T(D) VALUES(NULLIF(@D,'00010101')); SELECT * FROM @T; |
13 сен 19, 10:52 [21970165] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |