【问题标题】:SQL Server 2005 DateTime mathSQL Server 2005 日期时间数学
【发布时间】:2011-11-17 11:29:13
【问题描述】:

我正在尝试了解花费在某件事上的时间。我有两列中事物开始和结束的日期时间。我能做到:

 cnext.CreatedDate - c.CreatedDate

结果如下:

 1900-01-01 00:00:19.190

这意味着他们在这件事上花费了 19.19 秒。这对每一行都很好,但我想按具体事物分组并总结在每件事上花费的时间:

SUM(cnext.CreatedDate - c.CreatedDate)

但我得到一个:

Operand data type datetime is invalid for sum operator.

如果我无法总结 DateTime 类型,我应该如何获取总时间?

【问题讨论】:

    标签: sql-server-2005 tsql datetime


    【解决方案1】:

    您不能对日期时间值求和。这就像取一个字符串的平方根。

    试试:

    SUM(DATEDIFF(SECOND, c.CreatedDate, cnext.CreatedDate))
    

    或者如果您想要更高的精度:

    SUM(DATEDIFF(MILLISECOND, c.CreatedDate, cnext.CreatedDate))
    

    【讨论】:

    • +1。海报似乎暗示他没有日期部分的事实?
    【解决方案2】:

    如果日期药水是 1900 年 1 月 1 日,则将日期转换为浮点数,减去它们,然后将结果转换回日期时间。

    【讨论】:

      猜你喜欢
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 2010-11-12
      • 2014-09-05
      • 2012-05-08
      相关资源
      最近更新 更多