zoukankan      html  css  js  c++  java
  • SQL Server(00):日期时间函数

    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(Quarter,getdate()) --输出 1 现在是第几季度
    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 年份相减之后的确是1
    select datediff(day,'2011-11-11','2012-12-12')     --输出 397 两个日期相差的天数
    select * from test where datediff(day,Rq,getdate()) = 0 --其中Rq为日期列,查询当前的记录:?etdate()减去Rq列的值为0,Rq列的值与今天相减,号数为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

    http://technet.microsoft.com/zh-cn/library/ms186724.aspx#ModifyDateandTimeValues

  • 相关阅读:
    注册时按钮上的时间倒计时
    不能修改/删除/添加数据.(NTFS问题)
    站在2009年的门槛上
    超强PHP分页类(转自PHPCHINA)
    System.Web.Caching.Cache类 缓存 各种缓存依赖
    Wxpython快速构建GUI窗口程序
    Python2 和 Python3 有哪些差别
    12306数据库遭泄露,请尽快修改密码
    王欣复出后的第一款产品
    在命令行打开安卓UI界面
  • 原文地址:https://www.cnblogs.com/springsnow/p/9881617.html
Copyright © 2011-2022 走看看