【问题标题】:How to get the sum of hour, minutes, and seconds in 2 columns?如何获得 2 列中的小时、分钟和秒的总和?
【发布时间】:2021-12-19 06:21:19
【问题描述】:

我使用 SQL Server 作为数据库。我在一个表中有 2 列,newTime, oldTime

假设我在newTime 列中的值为04:07:28,对于oldTime,值为03:07:40

结果应该得到newTimeoldTime 列的总和,即07:15:08

我尝试了Split_String() 函数来轻松地将数字拆分为小时、分钟和秒。但是我在数据库中遇到了一个问题,兼容性级别很低,并且我尝试将compatibility_level 设置为 130,但我没有更改数据库的权限。

还有其他方法可以总结这两列吗?谢谢!

【问题讨论】:

  • create a Minimal, Reproducible Example 请同时标记您正在使用的 SQL Server 版本
  • 这些列是什么数据类型
  • @marc_s VARCHAR
  • 为什么您将时间值存储在字符串中?使用TIME !!这就是它的用途!
  • 总和超过24小时想要什么结果?

标签: sql sql-server sql-server-2014


【解决方案1】:

如 cmets 中所述 - 如果您要存储 时间值,您应该真的使用 TIME 数据类型 - 而不是 VARCHAR ...。 . 始终使用最合适的数据类型 - 没有例外。

无论如何 - 因为你有VARCHAR,所以声明有点复杂 - 但你去吧:

SELECT 
    DATEADD(SECOND, DATEDIFF(SECOND, 0, CAST(NewTime AS TIME)), CAST(OldTime AS TIME)) 
FROM 
    dbo.YourTableNameHere

当然,使用TIME 列会更容易:

SELECT 
    DATEADD(SECOND, DATEDIFF(SECOND, 0, NewTime), OldTime) 
FROM 
    dbo.YourTableNameHere

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2022-01-15
    相关资源
    最近更新 更多