datediff函数的用法(datediff函数怎么用)
日期/时间函数,返回两个日期之间指定日期部分的整数差。
大纲
DATEDIFF(datepart,startdate,enddate)
参数
datepart - 日期或时间部分的名称(或缩写)。这个名称可以用大写或小写来指定,有或没有引号。datepart可以指定为文字或主机变量。
startdate - 间隔的开始日期/时间。可以是各种标准格式的日期、时间或日期时间。
enddate - 间隔的结束日期/时间。可以是各种标准格式的日期、时间或日期时间。从enddate中减去startdate,以确定两个日期之间的日期部分间隔。
描述
DATEDIFF函数返回两个指定日期之间指定日期部分差的整数。日期范围从开始日期开始,到结束日期结束。(如果enddate早于startdate,DATEDIFF将返回一个负整数值。)
DATEDIFF返回startdate和enddate之间指定单位的总数。例如,两个日期时间值之间的分钟数计算日期部分和时间部分,并为每一天的差异增加1440分钟。DATEDIFF返回开始日期和结束日期之间跨越的指定日期部分边界的计数。例如,指定连续年份的任意两个日期(例如2018-09-23和2019-01-01)返回的年份DATEDIFF为1,而不管这两个日期之间的实际持续时间是大于还是小于365天。同样,12:23:59和12:24:05之间的分钟数是1,尽管实际上只有6秒将两个值分开。
请注意,DATEDIFF是为Sybase和Microsoft SQL Server兼容性而提供的。使用TIMESTAMPDIFF ODBC标量函数可以执行类似的时间/日期比较操作。
也可以使用DATEDIFF()方法调用从ObjectScript调用此函数:
$SYSTEM.SQL.Functions.DATEDIFF(datepart,startdate,enddate)
为DATEDIFF()方法指定无效的datepart、startdate或enddate会生成< ZDDIF >错误。
Datepart 参数
日期部分参数可以是下列日期/时间组件之一,可以是全名(日期部分列)或其缩写(缩写列)。这些datepart组件名称和缩写不区分大小写。
Date Part | Abbreviations |
---|---|
year | yyyy, yy |
month | mm, m |
week | wk, ww |
weekday | dw |
day | dd, d |
dayofyear | dy |
hour | hh |
minute | mi, n |
second | ss, s |
millisecond | ms |
microsecond | mcs |
nanosecond | ns |
weekday和dayofyear datepart值在功能上与day datepart值相同。
DATEDIFF和TIMESTAMPDIFF不处理季度(间隔3个月)。
如果指定包含分数秒的开始日期和结束日期,DATEDIFF将以分数秒的整数形式返回差值,如下例所示:
SELECT DATEDIFF('ms','64701,56670.10','64701,56670.27'), /* returns 170 */ DATEDIFF('ms','64701,56670.1111','64701,56670.27222') /* returns 161 */
datepart可以指定为带引号的字符串或不带引号的字符串。这些语法变体执行略有不同的操作:
Quotes: DATEDIFF('month','2018-02-25',$HOROLOG):在创建缓存查询时,datepart被视为文字。SQL执行文字替换。这将产生一个更容易重用的缓存查询。
无引号: DATEDIFF(month,'2018-02-25',$HOROLOG):创建缓存查询时,datepart被视为关键字。没有文字替换。这将生成更具体的缓存查询。
日期表达式格式
startdate和enddate参数可以采用不同的数据类型格式。
startdate和enddate参数可以采用以下任何格式:
%Date逻辑值(+$H),也称为$HOROLOG格式。
%PosixTime(%Library.PosixTime。逻辑值(编码的64位有符号整数)
%TimeStamp(%Library.TimeStamp)逻辑值(YYYY-MM-DD HH:MM:SS。FFF),也称为ODBC格式。
%String(或兼容)值。
%String(或compatible)值可以是以下任何一种格式,可以包含或省略小数秒:
99999、99999 ($HOROLOG格式)。 $HOROLOG特殊变量不返回小数秒。但是,可以使用$HOROLOG格式指定一个包含分数秒的值:99999,99999.999
Sybase/SQL-Server-date Sybase/SQL-Server-time
Sybase/SQL-Server-time Sybase/SQL-Server-date
Sybase/SQL-Server-date (default time is 00:00:00)
Sybase/SQL-Server-time (default date is 01/01/1900)
Sybase/SQL-Server-date是以下五种格式之一:
mm/dd/[yy]yy dd Mmm[mm][,][yy]yy dd [yy]yy Mmm[mm] yyyy Mmm[mm] dd yyyy [dd] Mmm[mm]
在第一种语法格式中,分隔符可以是斜杠(/)、连字符(-)或句点(.)。
本文地址:百科问答频道 https://www.neebe.cn/wenda/903321.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!