Сравнение значений даты для двух столбцов - PullRequest
0 голосов
/ 26 октября 2018

У меня есть столбец с именем PairDt, строка, которая содержит значение даты в последних 5 символах.Я хочу сравнить это значение даты со значением даты в столбце Day, который содержит даты в формате YYYY-MM-DD.

PairDt                  Day
----------------------------------
DCS-CNY-Yunbi-42606     2016-08-24
DCS-CNY-Yunbi-42607     2016-08-25
DCS-CNY-Yunbi-42608     2016-08-26
DCS-CNY-Yunbi-42609     2016-08-27
DCS-CNY-Yunbi-42610     2016-08-28

Как преобразовать Day в значение?

Я пытаюсь выделить значения даты в PairDt, которые не соответствуют значению даты в днях

1 Ответ

0 голосов
/ 27 октября 2018

Это 5-значное число в конце PairDt выглядит как число дней с 30 декабря 1899 года. Чтобы преобразовать это число в дату, используйте DATEADD, чтобы добавить столько дней. Чтобы преобразовать дату в число, используйте DATEDIFF для вычисления количества дней. Примерно такой код:

declare @PairDt varchar(50) = 'DCS-CNY-Yunbi-42606', @Day date = '2016-08-24'
select DATEADD(d, cast(right(@PairDt, 5) as int), '1899-12-30'), DATEDIFF(day, '1899-12-30', @Day)
...