`

SQL Server中的Datediff函数

阅读更多

SQL Server中的Datediff函数

 

1、描述:返回两个日期之间的时间间隔, 用于判断在两个日期之间存在的指定时间间隔的数目。


2、语法:DateDiff(interval, startdate, enddate)


3、各个属性描述如下:
a、interval:必选。字符串表达式,表示用于计算 startdate 和 enddate 之间的时间间隔。有关数值,可以参考“interval参数表”。


b、startdate:计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。 因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

 

c、enddate:计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。

 

d、返回类型:integer,两个日期之间的差值

 

4、说明:

a、要计算 startdate 和 enddate 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 startdate 是星期一,则 DateDiff 计算到 enddate 之前星期一的数目。此结果包含 enddate 而不包含 startdate。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 startdate 和 enddate 之间星期日的数目。如果 enddate 是星期日,DateDiff 将计算 enddate,但即使 startdate 是星期日,也不会计算 startdate。


b、startdate 是从 enddate 减去。如果 startdate 比 enddate 晚,返回负值。


c、当结果超出整数值范围,DATEDIFF 产生错误。对于毫秒,最大数是 24 天 20 小时 31 分钟零 23.647 秒。对于秒,最大数是 68 年。

 

5、interval参数表:

序号

日期部分

缩写

中文描述

1

year

yy,yyyy

2

quarter

qqq

季度

3

dayofyear

dy,y

一年的日数(按年来计算有多少天)

4

month

mm,m

5

day

dd,d

6

week

wkww

7

 

w

一周的日数(按周来计算有多少天)

8

hour

hh

小时

9

minute

min

10

second

sss

11

millisecond

ms

毫秒

 

6、实例:

--计算当前日期和指点日期之间的时间间隔
--当前日期:2015-05-06(因时间一直在表所以存在误差) 指定日期:2014-05-06
select getDATE()
--1、年
select datediff(year,'2014-05-06',getdate());--output:1
select datediff(year,getdate(),'2014-05-06');--output:-1
select datediff(year,getdate(),getdate());--output:0

--2、季度
select datediff(quarter,'2014-05-06',getdate());--output:4

--3、一年的日数(按年来计算有多少天)
select datediff(dayofyear,'2014-05-06',getdate());--output:365
select datediff(y,'2007-05-06','2008-05-06');--output:366

--4、月
select datediff(month,'2014-05-06',getdate());--output:12

--5、日
select datediff(day,'2014-05-06',getdate());--output:365
select datediff(day,'2007-05-06','2008-05-06');--output:366

--6、周
select datediff(week,'2014-05-06',getdate());--output:52
select datediff(ww,'2015-04-06',getdate());--output:4

--7、一周的日数(按周来计算有多少天)
select datediff(w,'2014-05-06',getdate());--output:365
select datediff(w,'2015-04-06',getdate());--output:30

--8、小时
select datediff(hour,'2014-05-06',getdate());--output:8770
select datediff(hour,'2015-04-06',getdate());--output:730(30*24+10点)

--9、分钟
select datediff(minute,'2015-05-06 11:00:00',getdate());--output:3

--10、秒
select datediff(second,'2015-05-06 11:00:00',getdate());--output:200

--11、毫秒
select datediff(millisecond,'2015-05-06 11:00:00',getdate());--output:238190

 由上面的实例可以看出:dayofyear和day输出的结果是一样的

分享到:
评论

相关推荐

    SQL Server 2014基础入门视频教程 (40集,含课件)

    28.SQL Server 2014 DATEDIFF函数.mp4 29.SQL Server 2014 DATEPART函数.mp4 30.SQL Server 2014 CHARINDEX函数.mp4 31.SQL Server 2014 STUFF函数.mp4 32.SQL Server 2014 SUBTRING函数.mp4 33..SQL Server ...

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程

    28.SQL Server 2014 DATEDIFF函数.mp4 29.SQL Server 2014 DATEPART函数.mp4 3.SQL Server 2014数据库安装.mp4 30.SQL Server 2014 CHARINDEX函数.mp4 31.SQL Server 2014 STUFF函数.mp4 32.SQL Server 2014 ...

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程.txt

    28.SQL Server 2014 DATEDIFF函数.mp4 29.SQL Server 2014 DATEPART函数.mp4 3.SQL Server 2014数据库安装.mp4 30.SQL Server 2014 CHARINDEX函数.mp4 31.SQL Server 2014 STUFF函数.mp4 32.SQL Server 2014 ...

    SQLSERVER时间日期函数详解

    提供SQLSERVER常用的时间日期函数。 比如:getdate()、dateadd()、datediff(),还带有示例讲解,希望对各位有帮助!

    sqlserver自定义函数

    打开测试数据库test,并以表w01为例,将下面的SQL语句放入sql2000查询分析器中,一段一段执行即可看到效果 ---在sql2000下创建测试数据表 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo]....

    sqlserver数据库常用函数

    2.DATEDIFF 4 3.DATENAME 5 4.DATEPART 7 5.DAY 9 6.GETDATE 10 7.GETUTCDATE 11 8.MONTH 11 9.YEAR 12 数学运算函数 13 1.ABS 13 2.ACOS 14 3.ASIN 15 4.ATAN 16 6.CEILING 18 8.COT 19 9.DEGREES 20 10.EXP 21 11....

    sql server 常用时间函数

    sql server 常用时间函数的查询 如datediff datepart等等

    SQL Server日期加减函数DATEDIFF与DATEADD用法分析

    主要介绍了SQL Server日期加减函数DATEDIFF与DATEADD用法,结合分析SQL Server使用DATEDIFF与DATEADD函数获取常见的周、月、天等日期相关运算技巧,需要的朋友可以参考下

    模拟SQLSERVER的两个函数:dateadd(),datediff()

    /****模拟sqlserver中的dateadd函数*******$part 类型:string取值范围:year,month,day,hour,min,sec表示:要增加的日期的哪个部分$n 类型:数值表示:要增加多少,根据$part决定增加哪个部分可为负数$datetime类型...

    【SQL高级(十)】【SQL Date 函数+SQL Date 数据类型】

    文章目录SQL Date 函数MySQL Date 函数NOW() 函数CURDATE() 函数CURTIME() 函数DATE() 函数EXTRACT() 函数DATE_ADD() 函数DATE_SUB() 函数DATEDIFF() 函数DATE_FORMAT() 函数SQL Server Date 函数GETDATE() 函数...

    sql server函数大全(精析)

    在函数中使用用户变量 变量既可用于输入,也可用于输出。在T-SQL中,用户变量以@符号开头,用于声明为特定的数据类型。可以使用SET或者SELECT语句给变量赋值。以下的例子用于将一个int类型的变量@MyNumber传递给SQRT...

    SqlServer中的日期与时间函数

    一、Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,’2004-10-15′) –...

    SQL Server各种日期计算

    在这篇文章里,我将告诉你如何使用DATEADD和 DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。

    sqlserver之datepart和datediff应用查找当天上午和下午的数据

    DATEDIFF() 函数返回两个日期之间的时间差。 --查找当天上午的数据 select * from R_Attendance where (datepart(hour,RDatetime)>=0 and datepart(hour,RDatetime)<12 datediff(d,RDatetime,GetDate())=0>12 and ...

    SQL函数

    date_expr) 返回日期加上 number 上述函数中datepart的 写法 取值和意义 yy 1753-9999 年份 qq 1-4 刻 mm 1-12 月 dy 1-366 日 dd 1-31 日 wk 1-54 周 dw 1-7 周几 hh 0-23 ...

    SQL Server简单查询示例汇总

    在SQL Server 2012的教程示例中,对于Sales.Orders表的查询,需要返回每月最后一天的订单。我们普遍的查询如下 USE TSQL2012 GO SELECT orderid, orderdate, custid, empid FROM Sales.Orders WHERE orderdate = ...

    SQL Server各种日期计算方法(收藏)

    你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文 章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的...

    SQL Server日期计算第1/2页

    SQL Server日期计算 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的...

Global site tag (gtag.js) - Google Analytics