Проблема, связанная с изменением varchar на datetime в SQL - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть вопрос, связанный с типом данных. Сейчас я пытаюсь импортировать плоский файл в базу данных назначения.

  1. Я импортирую плоский файл в одну таблицу A внутри своей промежуточной базы данных. Все столбцы в таблице A имеют тип данных varchar (50).
  2. Я написал запрос SQL, чтобы изменить тип данных и очистить данные в таблице A, и, наконец, вставить чистые данные в таблицу B внутри целевой базы данных.

Вот вопрос: в этом файле есть один столбец, содержащий данные даты. Он находится в типе данных varchar (50) в таблице A. Но он также содержит пустые строки. Так что в таблице A это выглядит хорошо: некоторые строки имеют дату, а некоторые - пустые. Однако после запуска запроса SQL. В таблице B все пустые строки в таблице A заменены на 1900-01-01 00: 00: 00.000. Обратите внимание, что я установил этот столбец в таблице B как тип данных datetime. Теперь я хочу, чтобы строки с датой в этом столбце показывали дату, а пустые строки были пустыми в целевой базе данных. Я не хочу, чтобы пустые строки были 1900-01-01 00: 00: 00.000. Как я могу изменить свой SQL код до конечной sh моей цели?

1 Ответ

2 голосов
/ 09 февраля 2020

Предположительно, вы можете сделать что-то вроде этого:

nullif(<expression to convert col to date/time>, '1900-01-01 00:00:00.000')
...