Sql Server中的时间添加

时间:2016-09-26 13:20:36

标签: sql sql-server

我有两个时间值,如

Time1=23:59:59:999
Time2=23:59:59:999

当我把这两个时间加起来(Time1 + Time2)时我希望结果是47:59:58而不是23:59:58。

我该怎么做?请建议!!

2 个答案:

答案 0 :(得分:1)

让我们看看时间和持续时间:

  • 日期时间是一个时刻,比如1978年6月28日15:23。
  • 没有日期部分的时间是重复的时刻,例如“我每天早上7点起床”。 (这就是你正在使用的。但是我在8:00起床并在23:00睡觉时不会使8 + 23 = 31.添加时间是没有意义的。)
  • 然后 timespan (例如2016-01-01 3:00到2016-01-02 13:00)。
  • 然后持续时间(例如六分钟)。这就是你想要处理的事情。

您正在存储一段时间,这实际上不是合适的数据类型。由于SQL Server在一段时间内不提供特殊数据类型,因此您可以使用数字类型并存储秒或微秒或您认为合适的任何内容。您可以轻松添加这些(如果两个值具有相同的单位,例如微秒)。

至于显示持续时间,您可以编写一个功能,为您提供您最喜欢的格式(例如'913天,9小时,5分钟和55.123秒')。

答案 1 :(得分:0)

实际上,这在SQL Server中确实很难。 select cast(time1 as datetime) + time2 怎么样?如果是这样的话:

awk

如果你真的想要HH:MM:SS格式的格式,那么你需要做很多字符串操作。