【发布时间】:2016-06-01 08:56:05
【问题描述】:
让我们考虑一下这个 BigInt:
duration = 20732867458
我可以把它转换成这样的分钟数:
Select CONVERT(varchar, DATEADD(mi,duration/600000000,0),114) as DurationInHours... `
这给了我 00:34:00:000
我按照这个建议除以6亿: Convert UNIX timestamp to .NET DateTime ticks in unmanaged code (without using .NET)
尽管如此,上述方法不会返回准确的秒和毫秒值。如果我将浮动持续时间除以 6 亿,则持续时间为 34.55 分钟。
我希望像 00:34:30:762 这样的时间
我设法用 c# .Net 做,但现在我需要用 TSQL 做。
【问题讨论】:
-
@MaxU 我已经尝试过这个函数,但是对于我表中的很多 bigint 值,我收到以下错误:“将表达式转换为数据类型 int 的算术溢出错误”
-
我已经尝试将 bigint
20732867458从您的示例中转换为 epochconverter.com 的日期时间。这给了我GMT: Sun, 31 Dec 2626 17:50:58 GMT... 看不到 34 分钟。我做错了什么? -
gofr1,原因是 epochconverter.com 的转换器基于纪元以来的秒数,而不是纪元以来的滴答数。由于每秒有 10,000,000 个滴答声,您只需输入
2073(即20732867458 / 10000000)即可获得相同的结果,以秒为单位
标签: sql tsql datetime type-conversion unix-timestamp