【问题标题】:Find time duration查找持续时间
【发布时间】:2010-01-19 07:27:24
【问题描述】:

我有两个带时间的日期字段。它们是

1.2008-06-09 10:18:00.000

2.2008-06-10 11:20:00.000

我要在格式上找出以上两个日期的区别-

“24 小时:2 分:0 秒”

有什么方法可以在sql 2000中得到这个结果吗?

【问题讨论】:

    标签: sql sql-server tsql datetime


    【解决方案1】:

    SQL Server 2000 中没有花哨的答案...

    DECLARE @d1 datetime, @d2 datetime 
    
    SELECT @d1 = '2008-06-09 10:18:00.000', @d2 = '2008-06-10 11:20:00.000'
    
    SELECT
        CAST(DATEDIFF(hour, @d1, @d2) AS varchar(30)) + ' hours, ' +
        CAST(DATEDIFF(minute, @d1, @d2) % 60 AS varchar(30))  + ' minutes, ' +
        CAST(DATEDIFF(second, @d1, @d2) % 3600 % 60 AS varchar(30))  + ' seconds'
    

    需要模数来去除已经计算的小时和分钟

    【讨论】:

    • 我认为,当@d2 然后@d1 中的较小单位较少时,您需要考虑越界。例如,将@d2 中的分钟数更改为 15 并检查您的结果。
    • 这些更改应该有效:CAST(DATEDIFF(second, @d1, @d2)/3600 AS varchar(30)) + ' hours, ' + CAST(DATEDIFF(second, @d1, @d2)/60 % 60 AS varchar(30)) + ' minutes, ' + CAST(DATEDIFF(second, @d1, @d2) % 3600 % 60 AS varchar(30)) + ' seconds'
    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多