'2008-02-05' - '2008-01-20''2008-01-25' - '2008-01-20'
'2008-01-25' - '2008-02-28'这样应该怎么算呢
!SQL 里面有没有类似与oracle里面的days函数
'2008-01-25' - '2008-02-28'这样应该怎么算呢
!SQL 里面有没有类似与oracle里面的days函数
调试欢乐多
日期部份 縮寫
年 yy、yyyy
季 qq、q
月 mm、m
一年當中的第幾天 dy、y
日 dd、d
週 wk、ww
星期幾 dw
時 hh
分 mi、n
秒 ss、s
毫秒 ms
DECLARE @A DATETIME
DECLARE @B DATETIME
SET @A='2008-01-01'
SET @B='2008-02-01'SELECT DATEDIFF(DAY,@A,@B)-----------
31(所影响的行数为 1 行)
DATEDIFF ( datepart , startdate , enddate )
第一个参数:日期类型(求差值)
第二个参数:起始日期
第三个参数:结束日期
declare @day int
set @day=datediff(day,'2008-01-25','2008-2-25' )
print @day
返回跨两个指定日期的日期和时间边界数。 语法
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