【问题标题】:SQL Datetime difference in daysSQL 日期时间差(以天为单位)
【发布时间】:2014-06-25 13:52:38
【问题描述】:

我试图找出两个日期之间的天数。我一直在尝试使用它:

SET Days_Outstanding = DATEDIFF(day, CONVERT(datetime, LS_CHG_DTE_EQP, 1), CONVERT(datetime, Report_Date, 1))

但是,这不会以天为单位返回数字。它返回的日期时间与我的数据集无关。

我不确定问题出在哪里,对于 SQL 来说还是相当新的。另外,我将 Days_Outstanding 定义为 int,这可能是问题所在吗?谢谢!

编辑

谢谢大家!不知道发生了什么,我按照您的建议更改了一些内容,当我回到原来的状态时,它最终起作用了。不知道发生了什么。谢谢你的想法!

【问题讨论】:

    标签: sql sql-server-2005 datetime datediff


    【解决方案1】:

    DATEDIFF 返回整数

    但是,根据 LS_CHG_DTE_EQP/Report_Datelocale 的值/数据类型,天数可能完全错误

    另外,DATEDIFF 在一天的边界上工作,而不是 24 小时周期。所以23:5600:02 是一天。

    否则,请添加示例输入和输出。

    【讨论】:

      【解决方案2】:

      例子

      select DATEDIFF(dd,'20100101',getdate())
      

      今天将返回 227

      所以在你的情况下假设 LS_CHG_DTE_EQP 和 Report_Date 都是日期时间列

      SET @Days_Outstanding = DATEDIFF(day, LS_CHG_DTE_EQP, Report_Date)
      

      【讨论】:

        【解决方案3】:

        你试过了吗

        SET Days_Outstanding = CONVERT(datetime, LS_CHG_DTE_EQP, 1) - CONVERT(datetime, Report_Date, 1))
        

        【讨论】:

          猜你喜欢
          • 2016-11-23
          • 2019-02-15
          • 1970-01-01
          • 2011-04-19
          • 2015-12-19
          • 2018-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多