SQLServer日期时间函数日期时间函数1、获取当前日期GetDategetdate()函数以datetime数据类型的格式返回当前SQLServer服务器所在计算机的日期和时间。其语法格式为getdate()。返回值舍入到最近的秒小数部分,精度为.333秒数据库十七偏移量不包含在内。示例:selectgetdate()--输出2013-03-0915:16:00.5702、GetUTCDate获取UTC时间值selectGETUTCDATE()--2013-06-1808:02:53.253这个获取到的是UTC时间。3、获取年度信息YEARyear函数以int数据类型的格式返回特定日期的年度信息。其语法格式为YEAR(date数据)。其中的date数据时一个可以解析为time、date、smalldatetime、datetime、datetime2或datetimeoffset值的表达式,列表达式、用户定义的变量或字符串文字。示例:selectyear(getdate())--输出20134、获取月份信息MONTHmonth函数以int数据类型的格式返回特定日期的月份信息。其语法格式为month(date数据)。其中的date数据时一个可以解析为time、date、smalldatetime、datetime、datetime2或datetimeoffset值的表达式,列表达式、用户定义的变量或字符串文字。示例:selectmonth(getdate())--输出35、获取天数信息dayday函数以int数据类型的格式返回特定日期的天数信息。其语法格式为day(date数据)。其中的date数据时一个可以解析为time、date、smalldatetime、datetime、datetime2或datetimeoffset值的表达式,列表达式、用户定义的变量或字符串文字。示例:selectday(getdate())--输出96、获取任意时间部分DatePartdatepart函数以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、MS7、获取任意时间部分DateName返回表示指定日期的指定日期部分的字符串。SELECTDateName(Quarter,GetDate())--输出2(6月)示例:selectdatepart(Quarter,getdate())--输出1现在是第几季度8、日期加法DATEADDdateadd函数将某个日期加上一个特定的时间间隔值后返回datetime数据类型的值。1、语法格式:dateadd(datepart,numer,date数据)numer:用于与detepart相加的值。如果指定了非整数值,则将舍弃该值的小数部分。date数据:一个用于解析为time、date、smalldatetime、datetime、datetime2、或datetimeoffset值的表达式、列表达式、用户定义的变量或字符串文字。datepart:时间部分。上节。示例:selectgetdate()--输出2013-03-0916:03:59.293selectdateadd(YYYY,10,getdate())--加了十年输出2023-03-0916:04:36.8938、日期减法DATEDIFFdatediff函数将两个特定的日期数据相减,得到的结果可以按照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:时间部分。示例:selectdatediff(YYYY,'2011-11-11','2012-12-12')--输出1年份相减之后的确是1selectdatediff(day,'2011-11-11','2012-12-12')--输出397两个日期相差的天数2013-3-13日补充,用此方法查询当前的记录:select*fromtestwheredatediff(day,Rq,getdate())=0--其中Rq为日期列,此行代码的意思是什么呢?getdate()减去Rq列的值为0,Rq列的值与今天相减,号数为09、SQLServer2008中新增的日期时间型函数1、获取系统时间SysDateTimesysdatetime函数以datetime2(7)数据类型的格式返回当前系统的日期和时间。其语法格式为sysdatetime()。返回值有七个小数位,但只精确到10毫秒。数据库偏移量未包含在内。SELECTSYSDATETIME()--2013-06-1722:17:59.06102112、获取当前日期和时间SysDateTimeOffsetsysdatetimeoffset函数以datetimeoffset(7)数据类型的格式返回当前系统的日期和时间。其语法格式为sysdatetimeoffset()。返回值有七个小数位,但只精确到10毫秒。数据库时区偏移量包含在内。SELECTsysdatetimeoffset()--2013-06-1722:18:30.1788009+08:003、获取系统UTC时间SysUTCDateTimeselectSysUTCDateTime()--2013-06-1808:09:17.822950510、Current_TimeStamp当前数据库系统时间戳返回当前数据库系统时间戳,返回值的类型为datetime,并且不含数据库时区偏移量。此值得自运行SQLServer实例的计算机的操作系统。等价于GetDate();SELECTCURRENT_TIMESTAMP--2013-06-1816:16:10.00711、SWITCHOFFSET更改时间偏移量SwitchOffset更改DateTimeOffset值的时区偏移量并保留UTC值。SELECTSysDateTimeOffset()--2013-06-1816:40:34.4322865+08:00SELECTSWITCHOFFSET(SysDateTimeOffset(),'+07:00')--2013-06-1815:40:53.5403794+07:0012、TodateTimeOffsetdatetime2转datetimeoffset返回从datetime2表达式转换而来的一个datetimeoffset值。SELECTSysDateTimeOffset()--2013-06-1816:40:34.4322865+08:00SELECTTodateTimeOffset(GetDate(),'+07:00')--2013-06-1816:46:10.537+07:00留意到以上代码是只更改时区,但是不更改时值。SysDateTime和SysUTCDate在秒小数部分精度上要比GetDate和GetUTCDate高。SysDateTimeOffset包含系统时区偏移量。SysDateTime、SysUTCDate和SysDateTimeOffset可分配给采用任意日期和时间类型的变量。13、判断是否为日期数据isDateISDATE函数可以验证某个输入值是否为有效的日期数据1、语法结构:ISDATE(expression)2、返回值若表达式为有效日期则返回1,否则返回0。示例:selectisdate('2012-12-12')--输出1selectisdate('xxxx-12-12')--输出0