declare @starttime as datetime declare @endtime as datetime set @starttime = '2009-7-24 10:55:01' set @endtime = '2009-7-24 11:56:01'select right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) / 3600 as int) as varchar),2) + ':' + right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) % 3600 / 60 as int) as varchar),2) + ':' + right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) % 60 as int) as varchar),2)/*-------------- 01:01:00(1 行受影响) */
DATEDIFF ( datepart , startdate , enddate ) 参数datepart是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。日期部分 缩写 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
就是显示当前时间getdate()与时间createdon之间的相差的天数,就是getdate()-createdon 为几天 时间段的标志 包括:hour,day,month,year 小时,天,月,年
declare @endtime as datetime
set @starttime = '2009-7-24 10:55:01'
set @endtime = '2009-7-24 11:56:01'select right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) / 3600 as int) as varchar),2) + ':' +
right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) % 3600 / 60 as int) as varchar),2) + ':' +
right('00'+ cast(cast(datediff(ss ,@starttime,@endtime) % 60 as int) as varchar),2)/*--------------
01:01:00(1 行受影响)
*/
参数datepart是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。日期部分 缩写
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
SELECT DATEDIFF(M,'2009-7-24 10:55:01','2009-7-24 11:56:01') --月
SELECT DATEDIFF(D,'2009-7-24 10:55:01','2009-7-24 11:56:01') --日
SELECT DATEDIFF(HH,'2009-7-24 10:55:01','2009-7-24 11:56:01') --时
SELECT DATEDIFF(N,'2009-7-24 10:55:01','2009-7-24 11:56:01') --分
SELECT DATEDIFF(S,'2009-7-24 10:55:01','2009-7-24 11:56:01') --秒
SELECT DATEDIFF(MS,'2009-7-24 10:55:01','2009-7-24 11:56:01') --毫秒
返回跨两个指定日期的日期和时间边界数。 语法
DATEDIFF ( datepart , startdate , enddate ) 参数
datepart是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。日期部分 缩写
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
startdate是计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。 因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。 enddate是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。返回类型
integer