计算两个日期之间的时间差,我要这样的格式

CQP 2009-12-01 04:04:48
计算两个日期之间的时间差,我要这样的格式
起时间:2009-12-01 14:38
止时间:2009-12-04 14:38
我要算出他们之间的剩余时间为:2天22小时34分41秒

用sql语句怎么写
...全文
250 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
enqihexiaoya 2009-12-01
  • 打赏
  • 举报
回复
顶1楼
cxmcxm 2009-12-01
  • 打赏
  • 举报
回复
declare @start datetime,@end datetime
select @start='2009-12-01 14:38',@end='2009-12-04 13:12:41'
select convert(varchar(10),datediff(ss,@start,@end)/(24*3600))+'天'
+convert(varchar(10),(datediff(ss,@start,@end)%(24*3600))/3600)+'小时'
+convert(varchar(10),((datediff(ss,@start,@end)%(24*3600))%3600)/60)+'分'
+convert(varchar(10),((datediff(ss,@start,@end)%(24*3600))%3600)%60)+'秒'
misterliwei 2009-12-01
  • 打赏
  • 举报
回复
DECLARE @DATE1 DATETIME,@DATE2 DATETIME,@DELTA DATETIME
SET @DATE1='2009-12-01 14:38'
SET @DATE2='2009-12-04 14:38'
SET @DELTA = @DATE2 - @DATE1

SELECT CONVERT(VARCHAR, DATEDIFF(DAY, 0, @DELTA)) + '天' + DATENAME(HOUR, @DELTA)
+ '时'+ DATENAME(MINUTE, @DELTA) + '分'+ DATENAME(SECOND, @DELTA) + '秒'
liupeng475626208 2009-12-01
  • 打赏
  • 举报
回复
顶6楼
vipper23 2009-12-01
  • 打赏
  • 举报
回复
declare @date1 datetime,@date2 datetime
set @date1='2009-12-01 14:38'
set @date2='2009-12-04 14:38'
select convert(varchar(10),DATEDIFF(dd,@date1,@date2))+'天'+ convert(varchar(10),DATEDIFF(hh,@date1,@date2)%24)+'小时'+
CONVERT(varchar(10),datediff(mm,@date1,@date2)%60 ) +'分钟' +CONVERT(varchar(10),datediff(ss,@date1,@date2)%60)+'秒'
jianshao810 2009-12-01
  • 打赏
  • 举报
回复

declare @date1 datetime,@date2 datetime
set @date1='2009-12-01 14:38:00'
set @date2='2009-12-04 14:38:00'

select 时间差 =
cast(datediff(second , @date1, @date2) / (24*60*60) as varchar) + '天' +
cast((datediff(second , @date1, @date2) % (24*60*60)) / (60*60) as varchar) + '时' +
cast(((datediff(second , @date1, @date2) % (24*60*60)) % (60*60)) / 60 as varchar) + '分' +
cast(((datediff(second , @date1, @date2) % (24*60*60)) % (60*60)) % 60 as varchar) + '秒'

/*
时间差
----------------------
3天0时0分0秒

(所影响的行数为 1 行)

*/

zhouyongyang 2009-12-01
  • 打赏
  • 举报
回复
写的真不错
--小F-- 2009-12-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
SQL codedeclare@date1datetime,@date2datetimeset@date1='2008-04-06 16:27:25'set@date2='2008-04-08 18:27:24'select 时间差=cast(datediff(second ,@date1,@date2)/ (24*60*60)asvarchar)+'天'+cast((datediff(secon?-
[/Quote]

佩服
duanzhi1984 2009-12-01
  • 打赏
  • 举报
回复
顶楼上的!
dawugui 2009-12-01
  • 打赏
  • 举报
回复
declare @date1 datetime,@date2 datetime
set @date1='2009-12-01 14:38:00'
set @date2='2009-12-04 14:38:00'

select 时间差 =
cast(datediff(second , @date1, @date2) / (24*60*60) as varchar) + '天' +
cast((datediff(second , @date1, @date2) % (24*60*60)) / (60*60) as varchar) + '时' +
cast(((datediff(second , @date1, @date2) % (24*60*60)) % (60*60)) / 60 as varchar) + '分' +
cast(((datediff(second , @date1, @date2) % (24*60*60)) % (60*60)) % 60 as varchar) + '秒'

/*
时间差
----------------------
3天0时0分0秒

(所影响的行数为 1 行)

*/
dawugui 2009-12-01
  • 打赏
  • 举报
回复
declare @date1 datetime,@date2 datetime
set @date1='2008-04-06 16:27:25'
set @date2='2008-04-08 18:27:24'

select 时间差 =
cast(datediff(second , @date1, @date2) / (24*60*60) as varchar) + '天' +
cast((datediff(second , @date1, @date2) % (24*60*60)) / (60*60) as varchar) + '时' +
cast(((datediff(second , @date1, @date2) % (24*60*60)) % (60*60)) / 60 as varchar) + '分' +
cast(((datediff(second , @date1, @date2) % (24*60*60)) % (60*60)) % 60 as varchar) + '秒'

/*
时间差
-----------------------
2天1时59分59秒

(所影响的行数为 1 行)
*/

34,591

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧