2010-01-19 114 views
0

我有times.They两个日期字段查找持续时间

1.2008-06-09 10:18:00.000

2.2008-06-10 11:20:00.000

我有找到格式上述两个日期之间的差值 -

“24小时:2分:0秒”

有什么方法来得到这样的结果在SQL 2000?

+0

如果它不能在25个小时? – gbn 2010-01-19 07:47:08

回答

2

在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' 

需要的modulos除去小时和分钟已经计算

+0

我认为你需要考虑交叉边界,当@ d2小于@ @ d1时,小单位较少。例如,将'@ d2'中的分钟数改为15并检查结果。 – 2011-08-16 18:58:40

+1

这些更改应该有效:CAST(DATEDIFF(second,@ d1,@ d2)/ 60%60(60)60 'varchar(30))+'minutes''+ CAST(DATEDIFF(second,@ d1,@ d2)%3600%60 AS varchar(30))+'seconds'' – 2011-08-16 19:01:38