如何计算时间差问题在数据库里面,例如:
date1 varchar(25) (date1数据为:"2006-03-01")
date2 varchar(25) (date2数据为:"2006-04-05")
如何计算date1与date2的时间差,最后将时间差赋给 date0呢? (先将varchar类型转化为datetime类型的在计算?)
用游标计算呢?还是直接就能算出来呢?如果可能的话,计算到相差的时、分、秒,小弟再次谢谢大家了!
date1 varchar(25) (date1数据为:"2006-03-01")
date2 varchar(25) (date2数据为:"2006-04-05")
如何计算date1与date2的时间差,最后将时间差赋给 date0呢? (先将varchar类型转化为datetime类型的在计算?)
用游标计算呢?还是直接就能算出来呢?如果可能的话,计算到相差的时、分、秒,小弟再次谢谢大家了!
Declare @date0 varchar(25)
Declare @date1 varchar(25)
Declare @date2 varchar(25)set @date1='2006-03-01'
set @date2='2006-04-05'
Select @date0=DATEDIFF(ss,@date1,@date2)
Select @date0
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
declare @date1 varchar(25)
declare @date2 varchar(25)
set @date1='2006-03-01 17:30:20.00'
set @date2='2006-04-05 19:20:50.00'
select right(convert(varchar,dateadd(s,datediff(s,@date1,@date2),0),120),14)--02-05 01:50:30
declare @date1 varchar(25)
declare @date2 varchar(25)
set @date1='2006-03-01 17:30:20.00'
set @date2='2006-04-05 19:20:50.00'
select stuff(stuff(convert(varchar,dateadd(s,datediff(s,@date1,@date2),0),108),3,1,'时'),6,1,'分')+'秒'--01时50分30秒
这个可以给解释一下吗?小弟,很菜,不好意思了,right什么意思?为什么要用120,14呢?什么意思啊,嘿嘿,不好意思了!
如果时间超过24小时,肯定要算一天的了啊,嗬嗬,这里的参数我怎么不懂呀,可以给解释一下吗?就是那个 108,6,1,什么意思呀,呵呵
108是convert用于获得hh:mm:ss格式字符串的参数
还有最后的时间转换,date0返回的是一个varchar型的,如果lz需要可以自己进行处理就可以了
declare @date2 varchar(25)
set @date1='2006-03-01 17:30:20.00'
set @date2='2006-04-05 19:20:50.00'
select stuff(stuff(convert(varchar,dateadd(s,datediff(s,@date1,@date2),0),108),3,1,'时'),6,1,'分')+'秒'select convert(varchar,dateadd(s,datediff(s,@date1,@date2),0),108)select dateadd(s,datediff(s,@date1,@date2),0)select datediff(s,@date1,@date2)
declare @date2 varchar(25)
set @date1='2006-03-01 15:30:20.00'
set @date2='2006-04-05 19:20:50.00'
select rtrim(datediff(dd,(case when substring(@date1,11,25)>substring(@date2,11,25) then dateadd(day,1,@date1) else @date1 end),@date2))+'天'+stuff(stuff(convert(varchar,dateadd(s,datediff(s,@date1,@date2),0),108),3,1,'小时'),7,1,'分')+'秒'
--35天03小时50分30秒