SQL Server日期时间函数包括哪些,如何使用的

Admin 2022-08-03 群英技术资讯 268 次浏览

这篇文章给大家分享的是SQL Server日期时间函数包括哪些,如何使用的。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。



1、getdate():获取当前日期

返回当前SQLServer服务器所在计算机的日期和时间。返回值舍入到最近的秒小数部分,精度为.333秒数据库十七偏移量不包含在内。

select getdate() --输出 2013-03-09 15:16:00.570

2、getutcdate():获取UTC时间值

select GETUTCDATE() -- 2013-06-18 08:02:53.253

3、year():获取年度信息

year函数以int数据类型的格式返回特定日期的年度信息。其中的date数据时一个可以解析为time、date、smalldatetime、datetime、datetime2或datetimeoffset值的表达式,列表达式、用户定义的变量或字符串文字。

select year(getdate()) --输出 2013

4、month():获取月份信息

month函数以int数据类型的格式返回特定日期的月份信息。

select month(getdate()) --输出 3

5、day():获取天数信息

day函数以int数据类型的格式返回特定日期的天数信息。

select day(getdate()) --输出 9

6、datepart():获取任意时间部分

datepart函数以int数据类型的格式返回某个日期时间数据的指定部分。

datepart( datepart , date数据 )

datepart参数:特定的要返回的数据的格式代码。Datepart部分的取值如下表所示:

说明 取值
返回年度信息 Year、YYYY、YY
返回月份信息 Month、MM、M
返回日期信息 Day、DD、D
返回周信息 Week、WK、WW
返回每周星期几信息 WeekDay、DW
返回季度信息 Quarter、QQ、Q
返回一年中第几天的信息 DayOfYear、DY、Y
返回小时信息 Hour、HH
返回分钟信息 Minute、MI、N
返回秒信息 Second、SS、S
返回毫秒信息 MillSecond、MS
SELECT DATEPART(yyyy,OrderDate) AS OrderYear,DATEPART(mm,OrderDate) AS OrderMonth,DATEPART(dd,OrderDate) AS OrderDay
FROM Orders WHERE OrderId=1

7、datename():获取任意时间部分

返回表示指定日期的指定日期部分的字符串。

SELECT DateName(Quarter,GetDate()) --输出 2(6月)

8、dateadd():日期加法

dateadd函数将某个日期加上一个特定的时间间隔值后返回datetime数据类型的值。

dateadd (datepart,numer,date数据)

numer参数:用于与detepart相加的值。如果指定了非整数值,则将舍弃该值的小数部分。

select getdate()    --输出 2013-03-09 16:03:59.293
select dateadd(YYYY,10,getdate())    --加了十年    输出2023-03-09 16:04:36.893

8、datediff():日期差异

datediff函数将两个特定的日期数据相减,得到的结果可以按照detepart指定的格式返回时间间隔。

datediff(datepart,startdate,enddate)

执行中将使用enddate减以startdate的值,如果startdate晚于enddate将返回负值。执行结果如果超出整数范围将提示错误。

select datediff(YYYY,'2011-11-11','2012-12-12')    --1
select datediff(day,'2011-11-11','2012-12-12')     --397
select * from test where datediff(day,Rq,getdate()) = 0 --返回当天的数据:

9、SQLServer 2008中新增的日期时间型函数

1、sysdatetime():获取系统时间

sysdatetime函数以datetime2(7)数据类型的格式返回当前系统的日期和时间。返回值有七个小数位,但只精确到10毫秒。数据库偏移量未包含在内。

SELECT SYSDATETIME()  --2013-06-17 22:17:59.0610211

2、sysdatetimeoffset():获取当前日期和时间

sysdatetimeoffset函数以datetimeoffset(7)数据类型的格式返回当前系统的日期和时间。返回值有七个小数位,但只精确到10毫秒。数据库时区偏移量包含在内。

SELECT sysdatetimeoffset()  --2013-06-17 22:18:30.1788009 +08:00

3、sysutcdatetime():获取系统UTC时间

select SysUTCDateTime() -- 2013-06-18 08:09:17.8229505

10、current_timestamp:当前数据库系统时间戳

返回当前数据库系统时间戳,返回值的类型为 datetime,并且不含数据库时区偏移量。 此值得自运行 SQL Server 实例的计算机的操作系统。等价于GetDate();

SELECT CURRENT_TIMESTAMP --2013-06-18 16:16:10.007

11、switchoffset():更改时间偏移量

SwitchOffset更改 DateTimeOffset 值的时区偏移量并保留 UTC 值。

SELECT SysDateTimeOffset()    -- 2013-06-18 16:40:34.4322865 +08:00
ELECT SWITCHOFFSET (SysDateTimeOffset(), '+07:00') --2013-06-18 15:40:53.5403794 +07:00

12、todatetimeoffset():返回从 datetime2 表达式转换的 datetimeoffset 值 。

返回从 datetime2 表达式转换而来的一个 datetimeoffset 值。

SELECT SysDateTimeOffset()    -- 2013-06-18 16:40:34.4322865 +08:00
SELECT TodateTimeOffset(GetDate(),'+07:00') --2013-06-18 16:46:10.537 +07:00

留意到以上代码是只更改时区,但是不更改时值。

SysDateTime 和 SysUTCDate 在秒小数部分精度上要比 GetDate 和 GetUTCDate 高。 SysDateTimeOffset 包含系统时区偏移量。 SysDateTime、SysUTCDate 和 SysDateTimeOffset 可分配给采用任意日期和时间类型的变量。

13、isdate():判断是否为日期数据

ISDATE函数可以验证某个输入值是否为有效的日期数据, 若表达式为有效日期则返回 1 ,否则返回 0 。

select isdate('2012-12-12')    -- 输出1
select isdate('xxxx-12-12')  -- 输出0

14、获取当天零点

select convert(datetime,convert(varchar(10),getdate(),120))
select dateadd(day,datediff(day,0,getdate()),0)

以上就是关于“SQL Server日期时间函数包括哪些,如何使用的”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注群英网络,小编每天都会为大家更新不同的知识。
群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服