• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
敬YES
Now Or Never
博客园    首页       联系   管理    订阅  订阅
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),0) as '当前季度的第一天'
--季度末,计算给定日期所在季度的最后一天
select dateadd(quarter,1+datediff(quarter,0,@date),-1) as '当前季度的最后一天'
--上个季度初
select dateadd(quarter,datediff(quarter,0,@date)-1,0) as '当前季度的上个季度初'
--上个季度末
select dateadd(quarter,datediff(quarter,0,@date),-1) as '当前季度的上个季度末'
--下个季度初
select dateadd(quarter,1+datediff(quarter,0,@date),0) as '当前季度的下个季度初'
--下个季度末
select dateadd(quarter,2+datediff(quarter,0,@date),-1) as '当前季度的下个季度末'

 

作者:陈敬(公众号:敬YES)
出处:http://www.cnblogs.com/janes/
博客文章仅供交流学习,请勿用于商业用途。如需转载,请务必注明出处。

posted on 2011-04-12 17:24  敬YES  阅读(5600)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3