Chr*_*ian 2 t-sql datetime datediff sql-server-2008
我在SQL Server 2008中进行DATEDIFF()调用,作为存储过程的一部分,它可能返回小至3秒或更短的值.我希望格式为MM:SS(即3秒时00:03).我最初在几分钟内使用了这个电话:
DATEDIFF(mi, SELECT MAX(startDate) FROM myTable , SELECT MAX(EndDate) FROM myTable)
但是,这会向下舍入到最近的分钟,从而消除秒值.如何使用DATEDIFF实现上面指定的格式?
Mit*_*eat 10
到最近的第二个:
DATEDIFF(ss, SELECT MAX(startDate) FROM myTable, SELECT MAX(EndDate) FROM myTable)
参考.
注意:DATEDIFF不会给你'格式'.它只返回一个整数.所以你需要适当地进行转换/格式化.
我怀疑你最容易得到的是使用CAST格式108:
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)
收益:
Run Code Online (Sandbox Code Playgroud)00:13:09
[注意:如果你想要舍入到最接近的3秒,你可以修改它:TSQL:舍入到最近的15分钟间隔 ]
| 归档时间: | 
 | 
| 查看次数: | 9042 次 | 
| 最近记录: |