T-SQL 中DateDiff 函数

原创 2010年12月29日 16:29:00

DateDiff函数简介

   返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。  

示例  
示例确定在 pubs 数据库中标题发布日期和当前日期间的天数。
  USE pubsGOSELECT DATEDIFF(day, pubdate, getdate()) AS no_of_daysFROM titlesGO
  DATEDIFF函数在Access和MSSQL中的使用区别
  ACCESS中用法:DATEDIFF('day', pubdate, Now())
  MSSQL中用法:DATEDIFF(day, pubdate, getdate())
  Sybase中用法:DATEDIFF(dd, pubdate, getdate())

语法
DateDiff(interval,   date1,   date2   [,firstdayofweek[,   firstweekofyear]])
DateDiff   函数的语法有以下参数:

参数   描述  
interval   必选。字符串表达式,表示用于计算   date1   和   date2   之间的时间间隔。有关数值,请参阅“设置”部分。  
date1,   date2   必选。日期表达式。用于计算的两个日期。  
firstdayofweek   可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。  
firstweekofyear   可选。指定一年中第一周的常数。如果没有指定,则默认为   1   月   1   日所在的星期。有关数值,请参阅“设置”部分。  


设置
interval   参数可以有以下值:
设置   描述  
yyyy   年  
q   季度  
m   月  
y   一年的日数  
d   日  
w   一周的日数  
ww   周  
h   小时  
m   分钟  
s   秒  


firstdayofweek   参数可以有以下值:

常数   值   描述  
vbUseSystem   0   使用区域语言支持   (NLS)   API   设置。  
vbSunday   1   星期日(默认)  
vbMonday   2   星期一  
vbTuesday   3   星期二  
vbWednesday   4   星期三  
vbThursday   5   星期四  
vbFriday   6   星期五  
vbSaturday   7   星期六  


firstweekofyear   参数可以有以下值:

常数   值   描述  
vbUseSystem   0   使用区域语言支持   (NLS)   API   设置。  
vbFirstJan1   1   由   1   月   1   日所在的星期开始(默认)。  
vbFirstFourDays   2   由在新年中至少有四天的第一周开始。  
vbFirstFullWeek   3   由在新的一年中第一个完整的周开始。  


说明
DateDiff   函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用   DateDiff   计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。
要计算   date1   和   date2   相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当   interval   为“一周的日数”(“w”)时,DateDiff   返回两个日期之间的星期数。如果   date1   是星期一,则   DateDiff   计算到   date2   之前星期一的数目。此结果包含   date2   而不包含   date1。如果   interval   是“周”(“ww”),则   DateDiff   函数返回日历表中两个日期之间的星期数。函数计算   date1   和   date2   之间星期日的数目。如果   date2   是星期日,DateDiff   将计算   date2,但即使   date1   是星期日,也不会计算   date1。

如果   date1   晚于   date2,则   DateDiff   函数返回负数。

firstdayofweek   参数会对使用“w”和“ww”间隔符号的计算产生影响。

如果   date1   或   date2   是日期文字,则指定的年度会成为日期的固定部分。但是如果   date1   或   date2   被包括在引号   ( "   ")   中并且省略年份,则在代码中每次计算   date1   或   date2   表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。

在   interval   为“年”(“yyyy”)时,比较   12   月   31   日和来年的   1   月   1   日,虽然实际上只相差一天,DateDiff   返回   1   表示相差一个年份。
 

DateDiff()在T-SQL使用要注意

语法: DATEDIFF ( datepart , startdate , enddate ) 参数datepart,可以指定yy-年,m-月,d-日,wk-周,hh-小时,mi-分钟,s-秒star...
  • stonec
  • stonec
  • 2007年09月03日 20:37
  • 394

在oracle中实现DateDiff函数的功能

在orcale中是没有DateDiff函数的功能的,想要实现时间比对功能可以这么写: 1.利用日期间的加减运算 天: ROUND(TO_NUMBER(END_DATE - START_DATE)...
  • weixin_38191345
  • weixin_38191345
  • 2017年08月09日 13:54
  • 675

HiveSQL-datediff函数

datediff()求两个日期间间隔的函数:datediff(大日期,小日期) datediff(from_unixtime(unix_timestamp(b.partitiontime,'yyyy...
  • qq_35970254
  • qq_35970254
  • 2016年10月08日 21:01
  • 192

VB中DateDiff 函数解释

VB中DateDiff 函数用法 DateDiff (interval, Date1 , Date2[,firstweekofyear[,firstweekofyear]])  返...
  • poloyzhang
  • poloyzhang
  • 2011年11月22日 11:02
  • 19996

asp DateDiff函数运用

功能:返回两个日期之间的时间间隔。语法:DateDiff(interval, date1, date2 [,firstdayofweek][, firstweekofyear]]) 语法参数:in...
  • liang_eval_2009
  • liang_eval_2009
  • 2010年12月20日 12:03
  • 1470

Javascript 的 dateDiff 函数

 javascript的日期处理功能,就是没有 Vbscript 的函数的丰富,总觉得不爽 ,因为用到了求时差,所以自己写了一个,凑合着用了,嘿嘿 function dateDiff(in...
  • mubingyun
  • mubingyun
  • 2008年10月31日 15:28
  • 1731

在C#内使用的DateDiff函数

using System; namespace ReflectionIT.System { public enum DateInterval { Yea...
  • soft2buy
  • soft2buy
  • 2010年11月23日 23:38
  • 5926

VB DateDiff函数

DateDiff 函数 返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。 语法 DateDiff(interval, date1, date2[, f...
  • limlimlim
  • limlimlim
  • 2013年02月28日 17:29
  • 1721

DateDiff 函数详解,DateDiff 方法在C#中的实现

DateDiff 函数 描述 返回两个日期之间的时间间隔。 语法 DateDiff(interval, date1, date2 [,firstdayofweek][, firstwe...
  • chengs_
  • chengs_
  • 2011年11月14日 16:41
  • 1926

Mysql与Sql Server DATEDIFF函数

Sql Server:Mysql:SELECT DATEDIFF('2016-09-30', '2012-12-31'); SELECT DATEDIFF('2012-12-31', '2016-09...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2016年11月01日 20:41
  • 1063
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:T-SQL 中DateDiff 函数
举报原因:
原因补充:

(最多只允许输入30个字)