Рекомендации по сравнению дат на сервере SQL, когда время неизвестно - PullRequest
0 голосов
/ 17 июня 2020

Я почесал в затылке, почему я получаю разные результаты на двух базах данных, вторая из которых была создана путем резервного копирования первой для Excel и последующего импорта этих данных. Запросы, которые возвращали несколько строк на одном компьютере, ничего не вернули на другом.

Тайна оказалась потому, что «восстановленная» машина установила все импортированные даты на полдень, поэтому сравнения вроде DTFROM<='1/1/2020' не удались, потому что DTFROM было 1/1/2020 12:00:00, что, естественно, не меньше и не равно преобразованию varchar, которое составляет 1/1/2020 00:00:00

Запрет повторной записи, возможно, от 500 до 1000 запросов, есть ли другое каноническое решение этой проблемы? Рассматриваемые столбцы взяты из древней базы данных, использующей datetime, поэтому использование другого формата данных не поможет.

1 Ответ

0 голосов
/ 17 июня 2020

Измените все столбцы на DATE вместо DATETIME,

alter table t alter column DTFROM date

или обновите все таблицы, чтобы удалить временную часть.

update t set DTFROM = cast(DTFROM as date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...