在SQL Server中达到上限或下限数月的问题

时间:2018-09-15 07:58:04

标签: sql-server

在SQL Server中,我试图获取两个日期之间的月数。

我想要这样的解决方案:

  • 如果输出达到4.2个月,则返回4个月
  • 如果输出达到4.5个月,则返回5个月
  • 如果输出达到4.9个月,则返回5个月

1 个答案:

答案 0 :(得分:1)

如果您假设每月的某天为30天。

DATEDIFF返回integer个差日。

因此,您可以尝试使用CAST(days as decimal)将日期数字设置为浮点数,然后使用ROUND获得结果。

select ROUND(CAST(DATEDIFF(dd,OPENDATE,MATURITYDATE)as decimal) /30,0 )
from T

sqlfiddle