【问题标题】:Subtracting Datetimes减去日期时间
【发布时间】:2016-06-29 20:55:31
【问题描述】:

我正在尝试找到最简单的方法将 DATETIME 彼此相减以产生 YY:MM 格式的差异。

按年和月连接两个时期的 DATEDIFF 显然只是将相同的时差组合在一起,因此相隔 2 年的时间段显示 2yrs,24months,而我希望它显示 2yrs,0months。

DATEDIFF(y,startdate,GETDATE())

有什么建议吗?谢谢!使用 SQL Server。

【问题讨论】:

  • 这适用于哪个 RDBMS?请添加标签以指定您使用的是mysqlpostgresqlsql-serveroracle 还是db2 - 或者完全是其他东西。

标签: sql sql-server datetime datediff


【解决方案1】:

您可以通过使用DATEDIFF() 按月的结果使用CONCAT() 构造它来做到这一点:

Select  Concat
        (
            Right('00' + Convert(Varchar, DateDiff(Month, StartDate, GetDate()) / 12), 2), 
            ':', 
            Right('00' + Convert(Varchar, DateDiff(Month, StartDate, GetDate()) % 12), 2)
        )

【讨论】:

    【解决方案2】:
    Select Concat(DateDiff(YY,StartDate,GetDate()),' Yrs,')+Concat((DateDiff(MM,StartDate,GetDate()))  % 12,' months')
    

    返回 2 年 2 个月

    -- 假设 StartDate 是 2014-04-29

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 2020-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多