sql-server - SQL - 秒到天、小时、分钟、秒

标签 sql-server tsql

<分区>

Possible Duplicate:
Efficient way to convert second to minute and seconds in sql server 2005

我有一个查询需要以日、时、分、秒格式返回秒。

下面的代码在小于一天时工作正常,但当以秒为单位的值大于一天时则不起作用

PRINT Convert(VarChar, DateAdd(S, 86400, 0), 108)

86400 正好是一天,它返回 00:00:00

有人可以修改它并告诉我这样的结果吗

1:00:00:00.

谢谢

最佳答案

这个怎么样:

declare @days int, 
        @dt1 smalldatetime = '2012-03-25 03:24:16', 
        @dt2 smalldatetime = getdate()

set @days = datediff (s, @dt1, @dt2)


SELECT convert(char(10), @days / (60 * 60 * 24)) + ':'
+ convert(char(10), dateadd(s, @days, convert(datetime2, '0001-01-01')), 108)

Result -- 170:20:40:00

参见 SQL Fiddle with Demo

关于sql-server - SQL - 秒到天、小时、分钟、秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12379466/

相关文章:

sql - 用于多个字段上的键集分页的通用 SQL 谓词

sql-server - 考虑在哪里存储文档 - 文件服务器上还是数据库中?

sql - 如何使用 t-sql 检查逻辑项组合?

sql - 如何将日期时间(SQL Server)转换为 Excel 日期时间?

sql - 我可以使用什么 GUID 作为占位符

sql - 非常慢的查询内部连接

sql-server - 限制查询中的记录

SQL Server - 将字符串添加到文本列(相当于 concat)

sql - SQL中的偶数或奇数

sql - 在 SQL Server 中用常量 1 或 0 暗示位