【问题标题】:Calculate the years and months it has been from a prescribed date from a table column?从表格列中计算从规定日期开始的年份和月份?
【发布时间】:2020-05-22 01:02:09
【问题描述】:

我需要从表格中取出purchasedate,并计算总年数加上今天日期剩余月数的十进制数,并能够在yyy.mm 中显示此计算数据。

即 4.5 将从 purchasedate 破译为 4 年零 6 个月。

【问题讨论】:

    标签: sql sql-server tsql date


    【解决方案1】:

    如果你计算出月份的差异,然后除以 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 以强制得到小数结果 - 否则你只会得到一个整数。

    【讨论】:

    • Dale K,非常感谢您在这方面的帮助。它非常适合我需要的东西。 :-)
    • @J.Swapp 请随时“接受”这个答案,并可能投票。见When Someone Answers
    【解决方案2】:

    只需乘以 12 并加上月份:

    select dateadd(month, floor(@years * 12), purchasedate)
    

    【讨论】:

      猜你喜欢
      • 2010-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 2015-06-20
      • 2017-01-19
      • 2018-10-15
      相关资源
      最近更新 更多