gpt4 book ai didi

sql - DateDiff 在 Sql Server 中是如何实现的?

转载 作者:搜寻专家 更新时间:2023-10-30 20:31:45 26 4
gpt4 key购买 nike

我在声明中使用了以下代码。

datediff(minute, visit.nexttime, visit.endtime)

结果各不相同。

我将向您展示几个结果。

  • 0:24:26 - 25
  • 0:32:14 - 32
  • 0:05:12 - 5
  • 0:06:28 - 7
  • 0:03:52 - 4
  • 0:03:32 - 3

第一个,24 舍入到 25,而只有 26 秒。

第二个,32 保持在第二个 14 的位置。

第三个,5 仍然是 5,很公平。

第四个一,6 舍入到 7 而只有 28 秒。

第五个 1,3 舍入到 4,因为 52 秒。

最后一个,即使到 32 秒,3 仍然是 3。

这是为什么?

我使用以下代码获取我的第一列。

CONVERT(varchar(6), datediff(second, visit.nexttime, visit.endtime)/3600)
+ ':' +
RIGHT('0' + CONVERT(varchar(2), (datediff(second, visit.nexttime, visit.endtime) % 3600) / 60), 2)
+ ':' +
RIGHT('0' + CONVERT(varchar(2), datediff(second, visit.nexttime, visit.endtime) % 60), 2)
as 'Transaction Time'

最佳答案

我实际上并不熟悉 SQL Server,但是阅读文档 here我想我知道你为什么会得到这些结果。

返回值是这样描述的:

Returns the count (signed integer) of the specified datepart boundaries crossed between the specified startdate and enddate.

由于您为 datepart 指定了 minute,我希望这意味着秒数将被忽略,它只计算 startdate 之间的分钟变化次数结束日期

例如。

如果 startdateenddate 在同一分钟内相隔 50 秒,它将返回 0。

如果 startdateenddate 仅相隔 5 秒但在不同的分钟内,它将返回 1。

关于sql - DateDiff 在 Sql Server 中是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4468083/

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