【问题标题】:Getting wrong difference of dates column in sql?sql中日期列的错误差异?
【发布时间】:2014-01-17 08:27:00
【问题描述】:

我有一个表,它有两列作为 DATETIME,如下所示

CreatedDate                 DeliveryDate                Diff_Date
2013-05-12 18:30:00.000     2013-05-17 18:30:00.000     1900-01-06 00:00:00.000

我想要 Diff_Date 因为我做了 sql 查询

select (DeliveryDate -  CreatedDate) as  Diff_Date from MYTABLE

但我得到了错误的答案:(

请纠正我。

【问题讨论】:

  • 你想要什么答案?从某种意义上说,你得到了“正确”的答案。 6 天被表示为日期时间。
  • 我不知道是什么让你告诉above Diff_Date is wrong ??
  • 在 DATEDIFF(datepart,startdate,enddate) 中指定日期部分,以便您清楚地理解它:)
  • 我尝试使用语法错误的 DATEDIFF,但它工作正常我的查询在子查询中,这就是它不起作用的原因:)

标签: mysql sql sql-server select datediff


【解决方案1】:

如果您希望天数为两个值之间的整数,请使用:

select datediff(day, DeliveryDate, CreatedDate)

【讨论】:

    【解决方案2】:

    试试这个:

    对于MySQLDATEDIFF()摩擦。

    SELECT DATEDIFF(DeliveryDate, CreatedDate) AS Diff_Date FROM MYTABLE
    

    对于SQL SERVERDATEDIFF()函数

    SELECT DATEDIFF(dd, CreatedDate, DeliveryDate) AS Diff_Date FROM MYTABLE
    

    【讨论】:

      【解决方案3】:

      你可以试试 DATEDIFF 功能。

      http://www.w3schools.com/sql/func_datediff.asp

      【讨论】:

        【解决方案4】:

        使用

        选择 Datediff(DD, SmallDate,BigDate)。

        【讨论】:

          【解决方案5】:

          试试这样:

          SELECT DATEDIFF(DeliveryDate ,CreatedDate) as  Diff_Date from MYTABLE
          

          更多信息可以参考文档:http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_datediff

          【讨论】:

            【解决方案6】:
                declare @CreatedDate datetime                              
                set @CreatedDate='2013-05-12 18:30:00.000'          
                declare @DeliveryDate datetime
                set @DeliveryDate='2013-05-17 18:30:00.000'
            
                declare @Diff_Date datetime
                set @Diff_Date='1900-01-06 00:00:00.000'
            
                --select Datediff(d,@CreatedDate,@DeliveryDate)
                select cast((@DeliveryDate-@CreatedDate) as datetime)
            
            it returns same results as date_diff
            -- 1900-01-06 00:00:00.000
            

            fiddle demo

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-02-22
              • 1970-01-01
              • 1970-01-01
              • 2021-09-04
              • 2013-03-10
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多