• Sql Server 日期函数


    1.一个月第一天的
    复制  保存Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
    2.本周的星期一
    复制  保存Select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
    3.一年的第一天
    复制  保存Select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
    4.季度的第一天
    复制  保存Select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
    5.当天的半夜
    复制  保存Select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
    6.上个月的最后一天
    复制  保存Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
    7.去年的最后一天
    复制  保存Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
    8.本月的最后一天
    复制  保存Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
    9.本年的最后一天
    复制  保存Select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
    10.本月的第一个星期一
    复制  保存select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0) 
    返回当前日期和时间

    通过函数GETDATE(),你可以获得当前的日期和时间。函数GETDATE()可以用来作为DATEDIME型字段的缺省值。这对插入记录时保存当时的时间是有用的。要建立一个表,其中的记录包含有当前的日期和时间,可以添加一个DATETIME型字段,指定其缺省值为函数GETDATE()的返回值,就象这样:
    复制  保存Create TABLE site_log (
    username VARCHAR(40),

    以下是具体函数明细:

    DATEADD
    在向指定日期加上一段时间的基础上,返回新的 datetime 值。

    语法
    DATEADD ( interval , number, date )
    将一个日期加上一段期间后的日期。 interval :设定一个日期( Date )所加上的一段期间的单位。譬如 interval ="d" 表示 number的单位为日。 interval    的设定值如下:
    设置 描述
    yyyy 年Year
    q 季Quarter
    m 月Month
    y 一年的日数
    d 日Day
    w 一周的日数
    ww 周Weekday
    h 时Hour
    n 分钟Minute
    s 秒Second

    number :数值表达式,设定一个日期所加上的一段期间,可为正值或负值,正值表示加(结果为 date 以后的日期),负值表示减(结果为 date 以前的日期)。
    date :待加减的日期。
    例子: DateAdd ( "m" , 1 , "31-Jan-98")
    结果: 28-Feb-98
    说明:将日期 31-Jan-98 加上一个月,结果为 28-Feb-98 而非 31-Fe-98 。
    例子: DateAdd ( "d" , 20 , "30-Jan-99")
    结果: 1999/2/9
    说明:将一个日期 30-Jan-99 加上 20 天后的日期。

    DATEDIFF
    返回跨两个指定日期的日期和时间边界数。

    语法
    DATEDIFF ( interval , startdate , enddate )
    计算两个日期之间的期间。
    interval :设定两个日期之间的期间计算之单位。譬如 interval ="m" 表示计算的单位为月。 interval 的设定值如:  
    日期部分 缩写
    year yy, yyyy
    quarter qq, q
    Month mm, m
    dayofyear dy, y
    Day dd, d
    Week wk, ww
    Hour hh,h
    minute mi, n
    second ss, s
    millisecond ms

    startdate    ,enddate :计算期间的两个日期表达式,若 enddate 较早,则两个日期之间的期间结果为正值;若 startdate    较早, 则结果为负值。
    FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下:
    0 使用 >API 的设定值。
    1 星期天
    2 星期一
    3 星期二
    4 星期三
    5 星期四
    6 星期五
    7 星期六
    FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:
    0 使用 >API 的设定值。
    1 一月一日那一周为一年的第一周
    2 至少包括四天的第一周为一年的第一周
    3 包括七天的第一周为一年的第一周
    例子: DateDiff ("d","25-Mar-99 ","30-Jun-99 ")
    结果: 97
    说明:显示两个日期之间的期间为 97 天


    GETDATE
    datetime 值的 Microsoft® SQL Server™ 标准内部格式返回当前系统日期和时间。
    语法

    GETDATE ( )

    返回类型

    datetime

    注释

    日期函数可用在 SELECT 语句的选择列表或用在查询的 WHERE 子句中。

    在设计报表时,GETDATE 函数可用于在每次生成报表时打印当前日期和时间。GETDATE 对于跟踪活动也很有用,诸如记录事务在某一帐户上发生的时间。

    示例
    A. 用 GET DATE 返回当前日期和时间

    下面的示例得出当前系统日期和时间:

    SELECT GETDATE()
    GO
    

    下面是结果集:

    -------------------------
    July 29 1998     2:50      PM
    (1 row(s) affected)
    
    B. 在 CREATE TABLE 语句中使用 GETDATE

    下面的示例创建 employees 表并用 GETDATE 给出员工雇佣时间的默认值。

    USE pubs
    GO
    CREATE TABLE employees
    (
    emp_id char(11) NOT NULL,
    emp_lname varchar(40) NOT NULL,
    emp_fname varchar(20) NOT NULL,
    emp_hire_date datetime DEFAULT GETDATE(),
    emp_mgr varchar(30)
    )
    GO
    


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

    语法
    DATENAME ( datepart , date )
    参数

    datepart

    是指定应返回的日期部分的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。

    日期部分 缩写
    year yy, yyyy
    quarter qq, q
    month mm, m
    dayofyear dy, y
    day dd, d
    week wk, ww
    weekday dw
    Hour hh
    minute mi, n
    second ss, s
    millisecond ms

    weekday (dw) 日期部分返回星期几(星期天、星期一等)。

    是返回 datetimesmalldatetime 值或日期格式字符串的表达式。对 1753 年 1 月 1 日之后的日期用datetime 数据类型。更早的日期存储为字符数据。当输入 datetime 值时,始终将其放入引号中。因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。
        如果只指定年份的最后两位数字,则小于或等于 two digit year cutoff 配置选项的值的最后两位数字的值所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2050(默认),则 49 被解释为 2049,50 被解释为 1950。为避免模糊,请使用四位数字的年份。
    返回类型

    nvarchar

    注释

    SQL Server 自动在字符和 datetime 值间按需要进行转换,例如,当将字符值与 datetime 值进行比较时。

    示例

    此示例从 GETDATE 返回的日期中提取月份名。

    SELECT DATENAME(month, getdate()) AS 'Month Name'
    

    下面是结果集:

    Month Name
    ------------------------------
    February  
    Day( 日期的字符串或表达式 )
    返回代表指定日期的天的日期部分的整数。
    语法

    DAY ( date )

    参数

    date

    类型为 datetimesmalldatetime 的表达式。

    返回类型

    int

    注释

    此函数等价于 DATEPART(dd, date)。

    示例

    此示例返回从日期 03/12/1998 后的天数。

    SELECT DAY('03/12/1998') AS 'Day Number'
    GO
    

    下面是结果集:

    Day Number
    ------------
    12
    

    在此示例中,以数字表示日期。注意:Microsoft® SQL Server™ 将 0 解释为 01/01/1900。

    SELECT MONTH(0), DAY(0), YEAR(0)
    

    下面是结果集。

    ----- ------ ------
    1       1        1900
    

    例子: Day(" 12/1/1999 ")
    结果: 1

    MONTH

    返回代表指定日期月份的整数。

    语法

    MONTH ( date )

    参数

    date

    返回 datetimesmalldatetime 值或日期格式字符串的表达式。仅对 1753 年 1 月 1 日后的日期使用 datetime 数据类型。

    返回类型

    int

    注释

    MONTH 等价于 DATEPART(mm, date)。

    datetime 值包含在引号中。对于早期日期,可将其存储为字符数据。

    Microsoft® SQL Server™ 认可各种日期样式。

    示例

    下面的示例从日期 03/12/1998 中返回月份数。

    SELECT "Month Number" = MONTH('03/12/1998')
    GO
    

    下面是结果集:

    Month Number
    ------------
    3
    

    下例用数字指定日期。注意:SQL Server 将 0 解释为 01/01/1900。

    SELECT MONTH(0), DAY(0), YEAR(0)
    

    下面是结果集。

    ----- ------ ------
    1       1        1900  

    YEAR

    返回表示指定日期中的年份的整数。

    语法

    YEAR ( date )

    参数

    date

    datetimesmalldatetime 类型的表达式。

    返回类型

    int

    注释

    此函数等价于 DATEPART(yy, date)。

    示例

    下例从日期 03/12/1998 中返回年份数。

    SELECT "Year Number" = YEAR('03/12/1998')
    GO
    

    下面是结果集:

    Year Number
    ------------
    1998
    

    下例用数字指定日期。注意:Microsoft® SQL Server™ 数据库将 0 解释为 1900 年 1 月 1 日。

    SELECT MONTH(0), DAY(0), YEAR(0)
    

    下面是结果集:

    ----- ------ ------

    1       1        1900

    DATEPART

    返回代表指定日期的指定日期部分的整数。

    语法

    DATEPART ( datepart , date )

    参数

    datepart

    是指定应返回的日期部分的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。

    日期部分 缩写
    year yy, yyyy
    quarter qq, q
    month mm, m
    dayofyear dy, y
    day dd, d
    week wk, ww
    weekday dw
    Hour hh
    minute mi, n
    second ss, s
    millisecond ms

    week (wk, ww) 日期部分反映对 SET DATEFIRST 作的更改。任何一年的 1 月 1 日定义了 week 日期部分的开始数字,例如:DATEPART(wk, 'Jan 1, xxxx') = 1,此处 xxxx 代表任一年。

    weekday (dw) 日期部分返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday 日期部分产生的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第一天。

    date

    是返回 datetimesmalldatetime 值或日期格式字符串的表达式。对 1753 年 1 月 1 日之后的日期用datetime 数据类型。更早的日期存储为字符数据。当输入 datetime 值时,始终将其放入引号中。因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。

    如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049 (默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。

    返回类型

    int

    注释

    DAY、MONTH、和 YEAR 函数分别是 DATEPART(dd, date)、DATEPART(mm, date)、和 DATEPART(yy, date) 的同义词。

    示例

    GETDATE 函数返回当前日期;然而,比较时并不总是需要完整的日期信息(通常只是对日期的一部分进行比较)。此示例显示 GETDATE 及 DATEPART 的输出。

    SELECT GETDATE() AS 'Current Date'
    GO
    

    下面是结果集:

    Current Date
    ---------------------------
    Feb 18 1998 11:46PM
    SELECT DATEPART(month, GETDATE()) AS 'Month Number'
    GO
    

    下面是结果集:

    Month Number
    ------------
    2
    

    此示例假设日期是 5 月 29 日。

    SELECT DATEPART(month, GETDATE())
    GO
    

    下面是结果集:

    -----------
    5
    (1 row(s) affected)
    

    在此示例中,以数字表示日期。注意:SQL Server 将 0 解释为 01/01/1900。

    SELECT DATEPART(m, 0), DATEPART(d, 0), DATEPART(yy, 0)
    

    下面是结果集:

    ----- ------ ------
    1       1        1900

















    GETUTCDATE

    返回表示当前 UTC 时间(世界时间坐标或格林尼治标准时间)的 datetime 值。当前的 UTC 时间得自当前的本地时间和运行 SQL Server 的计算机操作系统中的时区设置。

    语法

    GETUTCDATE()

    返回类型

    datetime

    注释

    GETUTCDATE 是非确定性函数。引用该列的视图和表达式无法进行索引。

    GETUTCDATE 无法在用户定义的函数内调用。

  • 相关阅读:
    [ css 计数器 counter ] css中counter计数器实例演示三
    [ css 计数器 counter ] css中counter计数器实例演示二
    Leetcode 15. 三数之和
    Leetcode 13. 罗马数字转整数
    Leetcode 19. 删除链表的倒数第 N 个结点
    Leetcode 12. 整数转罗马数字
    Leetcode 11. 盛最多水的容器 双指针
    剑指 Offer 68
    剑指 Offer 68
    面试题 04.02. 最小高度树
  • 原文地址:https://www.cnblogs.com/younggun/p/1675336.html
Copyright © 2020-2023  润新知