gpt4 book ai didi

sql-server-2008 - tsql DATEDIFF 在几分钟内调用而不舍入秒数

转载 作者:行者123 更新时间:2023-12-04 07:21:33 25 4
gpt4 key购买 nike

我在 SQL Server 2008 中进行 DATEDIFF() 调用作为存储过程的一部分,它可能会返回小至 3 秒或更短的值。我希望格式为 MM:SS(即 3 秒时为 00:03)。我最初是在几分钟内使用调用:

DATEDIFF(mi, SELECT MAX(startDate) FROM myTable , SELECT MAX(EndDate) FROM myTable)

但是,这是四舍五入到最接近的分钟,因此删除了秒值。如何使用 DATEDIFF 实现上面指定的格式?

最佳答案

精确到秒:

DATEDIFF(ss, SELECT MAX(startDate) FROM myTable, SELECT MAX(EndDate) FROM myTable)

Ref .

注意:DATEDIFF 不会为您提供“格式”。它只返回一个整数。所以你需要适本地转换/格式化。

我怀疑您最容易得到的最接近的方法是使用格式为 108CAST:

select convert(char(8), dateadd(ss, DATEDIFF(ss, SELECT MAX(startDate) FROM myTable, 
SELECT MAX(EndDate) FROM myTable)),
cast(0 as DateTime)) , 108)

例如

select convert(char(8), dateadd(ss, DATEDIFF(ss, '2012-12-16 12:00:00', 
'2012-12-16 12:13:09'),
cast(0 as DateTime)), 108)

返回:

00:13:09

[注意:如果你想四舍五入到最接近的3秒,你可以修改这个:TSQL: Round to Nearest 15 Minute Interval ]

关于sql-server-2008 - tsql DATEDIFF 在几分钟内调用而不舍入秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13907274/

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