`

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输出的结果是一样的

分享到:
评论

相关推荐

    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 ...

    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 数据库基础入门必备课程.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 ...

    SQLServer2000常用函数大全(经典)

    本资源"SQLServer2000常用函数大全(经典)"显然是一个综合性的教程,旨在帮助用户熟悉并掌握SQL Server 2000中的主要函数。以下是一些关键的SQL Server 2000函数及其应用: 1. **聚合函数**: - `COUNT()`:返回...

    SQLSERVER时间日期函数详解

    SQLSERVER 时间日期函数详解 SQL Server 提供了多种时间日期函数,帮助开发者快速处理日期和时间相关的操作。下面将对这些函数进行详解,并提供示例。 1. GetDate() 函数 GetDate() 函数用于返回当前系统的日期和...

    SQLServer2000常用函数大全

    这个资料包"SQLServer2000常用函数大全"涵盖了日期处理、自动编号以及存储过程和函数编写的相关例程,旨在帮助用户更好地理解和运用这些功能。 1. **日期处理函数**: - `GETDATE()`:返回当前系统的日期和时间。 ...

    sql server常用函数大全下载

    总的来说,这份"SQLServer2005常用函数大全及个人毕生收藏.CHM"资源将帮助你深入理解SQL Server 2005中的函数用法,提升你的SQL编程技能,从而更好地管理和操作数据库。无论是初学者还是经验丰富的开发者,都应该...

    SQLServer2000常用函数大全(经典).chm

    本资料"SQLServer 2000常用函数大全(经典).chm"涵盖了SQL Server 2000中的各种常见函数,旨在帮助用户深入理解和熟练运用这些函数。 1. **内置函数**: - **数值函数**:如ABS()用于返回绝对值,CEILING()返回大于...

    Sql Server 的语句函数大全

    在SQL Server数据库管理系统中,函数是执行特定计算或操作的核心元素。它们极大地丰富了SQL语言,使得查询和处理数据变得更加灵活高效。以下是对"Sql Server的语句函数大全"的详细解析: 1. **数值函数**: - `ABS...

    SQLServer2000常用函数大全.rar

    总之,"SQLServer2000常用函数大全"这个资源是学习和提升SQL Server 2000操作技能的重要参考资料,它包含了数据库管理中不可或缺的工具,对于SQL开发者和数据库管理员而言,理解和掌握这些函数将极大地提高工作效率...

    SQLSERVER时间函数汇总

    ORDER BY ...):在窗口函数中使用时间函数,用于分析时间序列数据,如计算每个用户的连续登录天数。 在实际应用中,这些函数可以解决各种日期和时间相关的查询需求,如报表生成、数据分析、事务处理等。了解并熟练...

    SqlServer日期处理函数

    ### SqlServer 日期处理函数详解 #### 概述 SqlServer 提供了一系列强大的日期处理函数,这些函数可以帮助开发者和数据库管理员高效地操作日期和时间数据。本文档将详细介绍几个常用的日期处理函数及其应用场景,并...

    SQL Server-DatePart函数

    SQL Server中的`DATEPART`函数是一个非常重要的日期和时间操作函数,它允许开发人员从日期或时间值中提取特定的时间部分,如年、月、日、小时、分钟和秒等。这个函数对于处理与日期和时间相关的数据时非常实用,尤其...

    SQLServer中的常用函数.doc

    在SQL Server中,函数是执行特定任务的预定义代码块,可以帮助我们处理和操作数据。以下是一些在SQL Server中常用的函数的详细说明: 1. **字符串函数**: - `LEN()`:计算字符串的长度,不包括尾部的空格。 - `...

    SQLServer时间日期函数详解.doc

    DATEDIFF函数返回两个日期之间的差异,以指定的时间间隔(如天、小时等)为单位。例如: ```sql SELECT DATEDIFF(day, '2004-09-01', '2004-09-18'); ``` 返回17,表示两个日期之间相隔17天。注意,如果第二个...

    SQLServer数据库游标和函数的使用(经典)

    在SQL Server中,数据库游标和函数是两个非常重要的概念,它们在数据处理和数据库操作中扮演着不可或缺的角色。游标允许我们逐行处理查询结果,而函数则提供了丰富的计算和逻辑处理能力。 首先,让我们深入理解SQL ...

Global site tag (gtag.js) - Google Analytics