【发布时间】:2020-05-22 01:02:09
【问题描述】:
我需要从表格中取出purchasedate,并计算总年数加上今天日期剩余月数的十进制数,并能够在yyy.mm 中显示此计算数据。
即 4.5 将从 purchasedate 破译为 4 年零 6 个月。
【问题讨论】:
标签: sql sql-server tsql date
我需要从表格中取出purchasedate,并计算总年数加上今天日期剩余月数的十进制数,并能够在yyy.mm 中显示此计算数据。
即 4.5 将从 purchasedate 破译为 4 年零 6 个月。
【问题讨论】:
标签: sql sql-server tsql date
如果你计算出月份的差异,然后除以 12 得到年份,然后使用余数得到月份,你可以将其转换为分数,例如
declare @PurchaseDate date = '01 Jan 2015', @Now date = current_timestamp
select convert(varchar(3),datediff(month,@PurchaseDate,@Now)/12) + '.' + substring(convert(varchar(5),convert(decimal(9,2),(datediff(month,@PurchaseDate,@Now)%12)/12.0)),3,2)
给予
5.33
可能需要针对极端情况进行一些调整。
注意除以12.0 以强制得到小数结果 - 否则你只会得到一个整数。
【讨论】:
只需乘以 12 并加上月份:
select dateadd(month, floor(@years * 12), purchasedate)
【讨论】: