比较两列的日期值

时间:2018-10-26 18:58:17

标签: date sql-server-2012

我有一列名为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 :(得分:0)

PairDt末尾的5位数字看起来像是自1899年12月30日以来的天数。要将此日期转换为日期,请使用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)