gpt4 book ai didi

sql-server-2008 - 如何从 SQL Server 2008 中的一系列 DateTime 列中获取平均时间?

转载 作者:行者123 更新时间:2023-12-01 05:34:28 25 4
gpt4 key购买 nike

假设我有一个包含以下内容的表 - id 和 date (只是为了简单起见)。
它包含许多行。

我的选择查询会是什么样子来获得这些行的平均时间?

谢谢,

最佳答案

免责声明:可能有 更好的方法来做到这一点。

笔记:

  • 您不能使用 AVG()针对 DATETIME/TIME 的函数
  • 我在类型转换 DATETIMEDECIMAL( 18, 6 )这似乎产生了合理(+-几毫秒)的精确结果。

  • #1 - 平均日期
    SELECT 
    CAST( AVG( CAST( TimeOfInterest AS DECIMAL( 18, 6 ) ) ) AS DATETIME )

    FROM dbo.MyTable;

    #2 - 平均时间 - 删除日期部分,转换,然后平均
    SELECT 
    CAST( AVG( CAST( TimeOfInterest - CAST( TimeOfInterest AS DATE ) AS DECIMAL( 18, 6 ) ) ) AS DATETIME )

    FROM dbo.MyTable;

    第二个示例减去 DATETIME 的日期部分从自身开始,只留下时间部分,然后将其转换为小数进行平均,然后返回 DATETIME用于格式化。您需要去掉日期部分(它没有意义),时间部分应该代表集合中的平均时间。

    关于sql-server-2008 - 如何从 SQL Server 2008 中的一系列 DateTime 列中获取平均时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9560015/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com