zoukankan      html  css  js  c++  java
  • SQL Server几个常用Date函数(二)

    在上一节SQL Server几个常用Date函数(一)中我们介绍了下表中前两个date函数,本节继续学习下面三个函数。

    函数

    描述

    GETDATE()

    返回当前日期和时间

    CONVERT()

    用不同的格式显示日期/时间

    DATEDIFF()

    返回两个日期之间的时间

    DATEPART()

    返回日期/时间的单独部分

    DATEADD()

    在日期中添加或减去指定的时间间隔

    3.DATEDIFF (datepart, startdate, enddate) 函数
    • 该函数用来计算两个日期之间的天(年、月…)数,enddate 减去 startdate,如果 startdate 晚于 enddate,则返回负值。其中,startdate表示起始时间;enddate表示结束时间;datepart表示时间间隔的计算单位,如年、月、日等。datepart 参数几种常用的值如下表所示:
    • Datepart表:

    Depart

    含义

    yy, yyyy

    qq, q

    季度

    mm, m

    dy, y

    一年中第几天

    dd, d

    wk, ww

    一年中第几周

    dw, w

    一周中第几天,从周日开始算

    hh

    小时

    mi, n

    分钟

    ss, s

    ms

    毫秒

    mcs

    微妙

    ns

    纳秒

    • 实例:查找最近一周内注册的用户

              SELECT * FROM UserInfo

              where DATEDIFF (DAY ,regtime,GETDATE ()) BETWEEN 0 AND 7

              image

    4.SQL Server DATEPART(datepart,date) 函数
    • 该 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。其中date 参数是合法的日期表达式;datepart 参数见上表。
    • 实例:查看cathy注册的年、月、日

                SELECT DATEPART (YYYY ,regtime )as year,DATEPART (MM ,regtime ) as month,DATEPART (DD,regtime ) as date
                FROM UserInfo
                WHERE sUserName ='CATHY'

                image

    5.SQL Server DATEADD(datepart,number,date) 函数
    • 该 函数可以计算添加或减去相应时间间隔的时间。其中date 参数是合法的日期表达式。number 是您希望添加的间隔数,如果您指定一个带小数的值,则将小数截去且不进行舍入,对于未来的时间,此数是正数,对于过去的时间,此数是负数。datePart参数见DateDiff中的列表。
    • 实例:

              DECLARE @A DATE

              SET @A = GETDATE()

              SELECT DATEADD(DAY,3,@A)

              SELECT DATEADD(DAY,9,@A)

             clip_image001

    6.关于季度查询的实例:

    declare @date  datetime
    set @date=getdate()
    --季度初,计算给定日期所在季度的第一天
    select dateadd(quarter,datediff(quarter,0,@date),0as '当前季度的第一天'
    --季度末,计算给定日期所在季度的最后一天
    select dateadd(quarter,1+datediff(quarter,0,@date),-1as '当前季度的最后一天'
    --上个季度初
    select dateadd(quarter,datediff(quarter,0,@date)-1,0as '当前季度的上个季度初'
    --上个季度末
    select dateadd(quarter,datediff(quarter,0,@date),-1as '当前季度的上个季度末'
    --下个季度初
    select dateadd(quarter,1+datediff(quarter,0,@date),0as '当前季度的下个季度初'
    --下个季度末
    select dateadd(quarter,2+datediff(quarter,0,@date),-1as '当前季度的下个季度末'

     

  • 相关阅读:
    Streaming+Sparksql使用sql实时分析 rabbitmq+mongodb+hive
    几种指定链接库搜索路径
    配置ssh
    无交换机情况下的集群互联
    请找出至少一个由递推关系 a(i) = a(i – 1) + a(i – 2) 生成的数列,使得当 n 趋于 (√5+1)/2的数列
    hdu 4027 Can you answer these queries?
    hdu 4022 Bombing
    hdu 4034
    hiho 第七周 完全背包
    hiho 第六周 01背包
  • 原文地址:https://www.cnblogs.com/janes/p/2013898.html
Copyright © 2011-2022 走看看