mysql查询日期计算机_SQL Server日期时间函数

日期时间函数

1、获取当前日期GetDate

getdate()函数以datetime数据类型的格式返回当前SQLServer服务器所在计算机的日期和时间。其语法格式为getdate()。返回值舍入到最近的秒小数部分,精度为.333秒数据库十七偏移量不包含在内。

示例:

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

2、GetUTCDate 获取UTC时间值

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

这个获取到的是UTC时间。

3、获取年度信息YEAR

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

示例:

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

4、获取月份信息MONTH

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

示例:

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

5、获取天数信息day

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

示例:

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

6、获取任意时间部分DatePart

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

1、语法格式:

datepart( datepart , date数据 )

datepart:特定的要返回的数据的格式代码。

date数据:一个可以解析为time、date、smalldatetime、datetime、datetime2或者datetimeoffset值的表达式、列表表达式、用户定义的变量或字符串文字。

2、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、SS

返回毫秒信息

MillSecond、MS

7、获取任意时间部分DateName

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

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

示例:

select datepart(Quarter,getdate()) --输出 1 现在是第几季度

8、日期加法DATEADD

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

1、语法格式:

dateadd (datepart,numer,date数据)

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

date数据:一个用于解析为time、date、smalldatetime、datetime、datetime2、或datetimeoffset值的表达式、列表达式、用户定义的变量或字符串文字。

datepart:时间部分。上节。

示例:

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指定的格式返回特定的数据。

1、语法格式:

datediff(datepart,startdate,enddate)

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

startdate:一个可以解析为time、date、smalldate、datetime、datetime2或datetimeoffset值的表达式、列表达式、用户定义的变量或字符串文字。

enddate:一个可以解析为time、date、smalldate、datetime、datetime2或datetimeoffset值的表达式、列表达式、用户定义的变量或字符串文字。

datepart:时间部分。

示例:

select datediff(YYYY,'2011-11-11','2012-12-12') --输出1 年份相减之后的确是1

select datediff(day,'2011-11-11','2012-12-12') --输出 397 两个日期相差的天数

2013-3-13日补充,用此方法查询当前的记录:

select * from test where datediff(day,Rq,getdate()) = 0 --其中Rq为日期列,此行代码的意思是什么呢?getdate()减去Rq列的值为0,Rq列的值与今天相减,号数为0

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

1、获取系统时间 SysDateTime

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

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

2、获取当前日期和时间 SysDateTimeOffset

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

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

3、获取系统UTC时间 SysUTCDateTime

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

SELECT 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、语法结构:

ISDATE(expression)

2、返回值

若表达式为有效日期则返回 1 ,否则返回 0 。

示例:

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值