我正在使用具有StartDate和EndDate字段的表。我需要在几年之间找到差异。
实施例: StartDate = 1/1/2017 EndDate = 12/31/2017
我希望结果= 1表示日期差异。
另外,我想把它四舍五入到最接近的整数。
实施例: StartDate = 1/1/2017 EndDate = 11/30/2017
我希望结果= 1表示日期差异。
使用datediff函数,我可以得到结果,但它没有四舍五入到最接近的整数。
示例查询: 即使65个月/ 12小于5.5,我也要6年了。
select (DATEDIFF(yy, '01/01/2016', '5/31/2021')
+ CASE WHEN abs(DATEPART(day, '01/01/2016') - DATEPART(day, '05/31/2021')) > 15 THEN 1 ELSE 0 END)
select (DATEDIFF(mm, '01/01/2016', '05/31/2021')
+ CASE WHEN abs(DATEPART(day, '01/01/2016') - DATEPART(day, '05/31/2021')) > 15 THEN 1 ELSE 0 END)
答案 0 :(得分:1)
.row1-header
使用此代码,希望它对您有所帮助。
答案 1 :(得分:0)
到目前为止,以下查询似乎工作正常。我的错误是我除了12而不是12.0来进行舍入才能正常工作。谁知道! :
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
答案 2 :(得分:0)
这可能有点旧,但是在使用Oracle SQL Developer时,可以使用以下命令。只需在下面添加您的日期即可。我正在使用DateTime。这用于获取0到10之间的年份。
TRUNC((MONTHS_BETWEEN(<DATE_ONE>, <DATE_TWO>) * 31) / 365) > 0 and TRUNC((MONTHS_BETWEEN(<DATE_ONE>, <DATE_TWO>) * 31) / 365) < 10