date - 比较两列的日期值
问题描述
我有一个名为 的列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
与 Days 中的日期值不匹配的日期值
解决方案
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)
推荐阅读
- asp.net - ASP.NET v4 输入字符串格式不正确异常
- php - codeigniter 中的更新记录问题
- azure-api-management - 使用 Azure APIM 策略处理表单数据
- javascript - 如何在不使用插件的情况下将 jQuery 1.5.1 升级到 3.0
- python - 返回具有条件的数据框 Python 中的模式值
- php - 如何将css样式添加到php属性
- express - 为什么在 express.js 中 get() 成功处理请求后 use() 方法仍然执行?
- python - TypeError:字符串索引必须是整数。不知道我做错了什么
- javascript - 将大型视频文件分块并附加到 BLOB 以进行连续播放
- sitecore - 对于 Sitecore 实例上的不同站点,后备语言是否可以不同?