求剩余时间,精确到x年x月x日

chenyuanzhong 2005-08-27 04:07:35
求剩余时间譬如2005-7-8 11:47:03到2005-9-8 12:50:03的剩余时间。结果格式为:10天3小时5分
...全文
148 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzgood 2005-10-13
  • 打赏
  • 举报
回复
create function GetTimeDiff( @beginDateTime datetime, @endDateTime datetime)
returns nvarchar(100)
as
begin
declare @totalMS int ,@totalS int , @totalH int , @totalDay int ,@return nvarchar(100)
set @totalMS = datediff(ss,@beginDateTime, @endDateTime)

set @totalS = @totalMS/60
set @totalMS = @totalMS % 60
set @totalH = @totalS/60
set @totalS = @totalS%60
set @totalDay= @totalH/24
set @totalH = @totalH % 24

set @return = ''

if @totalDay<>0 --天
set @return = @return+cast(@totalDay as varchar(10))+'天'


if @totalH<>0 -- 小时
set @return = @return+cast(@totalH as varchar(2))+'小时'

if @totalS<>0 -- 分钟
set @return = @return+cast(@totalS as varchar(2))+'分'

if @totalMS<>0 --秒
set @return = @return+cast(@totalMS as varchar(2))+'秒'

return replace(@return,' ','')
end

iwl 2005-08-28
  • 打赏
  • 举报
回复
up
pensheng 2005-08-28
  • 打赏
  • 举报
回复
Select rtrim(convert(char,datediff(day,'2005-7-8 11:47:03','2005-9-8 12:50:03')))
+'天'+rtrim(convert(char,datediff(hour,'2005-7-8 11:47:03','2005-9-8 12:50:03')-
datediff(day,'2005-7-8 11:47:03','2005-9-8 12:50:03')*24))
+'时'+rtrim(convert(char,datediff(minute,'2005-7-8 11:47:03','2005-9-8 12:50:03')-
datediff(hour,'2005-7-8 11:47:03','2005-9-8 12:50:03')*60))+'分'
wgsasd311 2005-08-27
  • 打赏
  • 举报
回复
这是在SQL SERVER中。我如果在asp中这样的一条sql语句怎么也。分可以 再加哈
-------
在SQL中
Select dbo.GetTimeDiff('2005-7-8 11:47:03','2005-9-8 12:50:03')
在ASP中
sqlstr="Select dbo.GetTimeDiff('2005-7-8 11:47:03','2005-9-8 12:50:03')"
然后执行上面语句。
quhaihua 2005-08-27
  • 打赏
  • 举报
回复
这样写似乎是有问题的
比如Select dbo.GetTimeDiff('2005-7-8 11:47:03','2005-7-7 9:50:03')
-------------------------------------
-1天-2小时3分钟



chenyuanzhong 2005-08-27
  • 打赏
  • 举报
回复
这是在SQL SERVER中。我如果在asp中这样的一条sql语句怎么也。分可以 再加哈
chenyuanzhong 2005-08-27
  • 打赏
  • 举报
回复
哥哥。谢了。我试试看。还以为没人理我呢
paoluo 2005-08-27
  • 打赏
  • 举报
回复
也可以改写为一个函数
Create Function GetTimeDiff(@STime DateTime,@ETime DateTime)
Returns Nvarchar(100)
As
Begin
Declare @S Nvarchar(100)
Set @S=Rtrim(DateDiff(dd,@STime,@ETime))+N'天'
+Rtrim(DateDiff(hh,@STime,@ETime)-DateDiff(dd,@STime,@ETime)*24)+N'小时'
+Rtrim(DateDiff(mi,@STime,@ETime)-DateDiff(hh,@STime,@ETime)*60)+N'分钟'
Return @S
End
GO
Select dbo.GetTimeDiff('2005-7-8 11:47:03','2005-9-8 12:50:03')
paoluo 2005-08-27
  • 打赏
  • 举报
回复
Declare @STime DateTime,@ETime DateTime
Set @STime='2005-7-8 11:47:03'
Set @ETime='2005-9-8 12:50:03'
Select Rtrim(DateDiff(dd,@STime,@ETime))+N'天'
+Rtrim(DateDiff(hh,@STime,@ETime)-DateDiff(dd,@STime,@ETime)*24)+N'小时'
+Rtrim(DateDiff(mi,@STime,@ETime)-DateDiff(hh,@STime,@ETime)*60)+N'分钟'
paoluo 2005-08-27
  • 打赏
  • 举报
回复
Select Rtrim(DateDiff(dd,'2005-7-8 11:47:03','2005-9-8 12:50:03'))+N'天'
+Rtrim(DateDiff(hh,'2005-7-8 11:47:03','2005-9-8 12:50:03')-DateDiff(dd,'2005-7-8 11:47:03','2005-9-8 12:50:03')*24)+N'小时'
+Rtrim(DateDiff(mi,'2005-7-8 11:47:03','2005-9-8 12:50:03')-DateDiff(hh,'2005-7-8 11:47:03','2005-9-8 12:50:03')*60)+N'分钟'
--结果
62天1小时3分钟

34,576

社区成员

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

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