【问题标题】:Subtract two dates in Microsoft SQL Server在 Microsoft SQL Server 中减去两个日期
【发布时间】:2016-03-29 22:20:57
【问题描述】:

我想在 MS SQL Server 中减去 2 个日期。

例子:

Current date      Last used date
'2016-03-30'      '2015-02-03'

当前日期是指今天的日期,“上次使用日期”是一个度量值。

如何在 SQL Server 中编写查询?

我有这个但不起作用(它说“操作数数据类型对减法运算符无效”)

select 
    CONVERT(DATE, GETDATE()) - CONVERT(DATE, LastUsedDate) 
from 
    databasename 

【问题讨论】:

    标签: sql sql-server database sql-server-2012 data-warehouse


    【解决方案1】:
    SELECT     DATEDIFF(day,'2014-06-05','2014-08-05')     AS DiffDate
    

    输出 DiffDate 61

    更多练习请参考以下W3学校:

    https://www.w3schools.com/sql/func_sqlserver_datediff.asp

    【讨论】:

    • 如果这一项有助于获得结果,请标记为答案!谢谢?
    【解决方案2】:

    这里您不必将 GETDATE() 转换为日期,因为它已经是 datetime 数据类型。所以你的查询如下

    SELECT DATEDIFF(day,CAST(LastUsedDate as date),GETDATE()) AS DifferneceDays
    FROM TableName
    

    【讨论】:

      【解决方案3】:

      正常使用的函数是datediff():

      select datediff(day, cast('2016-02-03' as date), cast('2016-03-30' as date))
      

      您可以减去 datetime 值,但不能减去日期。唉。

      【讨论】:

        猜你喜欢
        • 2021-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-07
        • 1970-01-01
        • 2016-12-08
        • 1970-01-01
        相关资源
        最近更新 更多