SQL Server中常用的日期时间函数

来源:互联网 发布:淘宝瑕疵大牌化妆品 编辑:程序博客网 时间:2024/06/05 17:19

日期时间函数可用在SELECT语句的选择列表或用在查询的WHERE子句中,下面将给出SQL Server中重用的日期时间函数。

这里写图片描述

由于排版问题,就没有将这些函数表格都贴上来。下面就这些日期时间函数做具体的使用。

1. GETDATE()获取到当前时间
按datetime值的SQL Server标准内部格式返回当前系统日期和时间。

select GETDATE()

在下方结果栏中显示

2016-05-14 12:00:51.737

2. DAY(),MONTH(),YEAR()函数中使用GETDATE()函数,用来返回当前时间的日、月、年

--DAY     DAY ( date )    返回表示指定 date 的“日”部分的整数。     int    具有确定性--MONTH   MONTH ( date ) 返回表示指定 date 的“月”部分的整数。            int    具有确定性--YEAR YEAR ( date )    返回表示指定 date 的“年”部分的整数。            int    具有确定性
--其日期值应在1753年到9999年之间--这是SQL Server系统所能识别的日期范围,否则会出现错误。 
--函数GETDATE()获取到当前时间select DAY(GETDATE())    as '日'      ,MONTH(GETDATE())  as '月'      ,YEAR(GETDATE())   as '年' 
14  5   2016

3.运用DATEPART函数,返回代表指定日期的指定日期部分的整数

--运用DATEPART函数,返回代表指定日期的指定日期部分的整数SELECT  DATEPART(DAY , GETDATE())  as '日'        ,DATEPART(MONTH , GETDATE())  as '月'        ,DATEPART(YEAR , GETDATE())   as '年' 
14  5   2016

4.用 DATEADD ()函数来获得下一个时间或之前的时间日期
DATEADD DATEADD (datepart , number , date ) 通过将一个时间间隔与指定 date 的指定 datepart 相加,返回一个新的 datetime 值。

--用 dateadd 来获得下一个时间或之前的时间日期 select   GETDATE()                     as '获取当前时间'             --获取当前时间            , DATEADD (DD , 1 , getdate())  as '当前时间的下一天'               --当前时间的下一天        , DATEADD (MM , 1 , getdate())  as '当前时间的下一个月'              --当前时间的下一个月        , DATEADD (YY , 1 , getdate())  as '当前时间的下一年'               --当前时间的下一年        , DATEADD (DD , -1 , getdate()) as '当前时间的前一天'               --当前时间的前一天        , DATEADD (MM , -1 , getdate()) as '当前时间的前一个月'              --当前时间的前一个月        , DATEADD (YY , -1 , getdate()) as '当前时间的前一年'               --当前时间的前一年
获取当前时间          2016-05-14 12:12:29.137 当前时间的下一天        2016-05-15 12:12:29.137 当前时间的下一个月       2016-06-14 12:12:29.137 当前时间的下一年        2017-05-14 12:12:29.137 当前时间的前一天        2016-05-13 12:12:29.137 当前时间的前一个月       2016-04-14 12:12:29.137当前时间的前一年        2015-05-14 12:12:29.137

5.DATEDIFF()函数。

DATEDIFF ( datepart , startdate , enddate )    返回两个指定日期之间所跨的日期或时间 datepart 边界的数目。
 SELECT DATEDIFF(DD,'2016-5-12',GETDATE())  as '相差天数'  --时间差,返回日期 SELECT DATEDIFF(MM,'2016-4-12',GETDATE())  as '相差月份'  --时间差,返回月份 SELECT DATEDIFF(YY,'2000-5-14',GETDATE())  as '相差年份'  --时间差,返回年份2           1           16

6.DATENAME()函数。

DATENAME    DATENAME ( datepart , date )        返回表示指定日期的指定 datepart 的字符串。        nvarchar    
SELECT DATENAME(year, GETDATE())    --年    ,DATENAME(month,  GETDATE())    --月    ,DATENAME(day,  GETDATE())     --日    ,DATENAME(week,GETDATE())       --星期    ,DATENAME(dayofyear, GETDATE())  --当前年份第多少天    ,DATENAME(weekday,  GETDATE());   --星期
2016    05  14  20  135 星期六

同样DATENAME()函数还能够和GETDAY()函数一起用,GETDAY()函数大致个GETDATE()函数一样。

SELECT DATENAME(hour, GETDATE()) as '时'         --当天的第几个小时    ,DATENAME(minute,GETDATE())   as '分'       --当天小时的第几分    ,DATENAME(second, GETDATE())   as '秒';     --当天小时分钟的第几秒
时   分   秒12  24  19

7.T-SQL的日期时间函数。

--select GETDATE()--截取一个时间的年,月,日--函数GETDATE()获取到当前时间--select DAY(GETDATE())    as '日'--      ,MONTH(GETDATE())  as '月'--      ,YEAR(GETDATE())   as '年'       --其日期值应在1753年到9999年之间      --这是SQL Server系统所能识别的日期范围,否则会出现错误。 --运用DATEPART函数,返回代表指定日期的指定日期部分的整数--SELECT  DATEPART(DAY , GETDATE())  as '日'--        ,DATEPART(MONTH , GETDATE())  as '月'--        ,DATEPART(YEAR , GETDATE())   as '年' --用 dateadd 来获得下一个时间或之前的时间日期 --select     GETDATE()                     as '获取当前时间'     --      --获取当前时间        --  , DATEADD (DD , 1 , getdate())  as '当前时间的下一天'       --      --当前时间的下一天 --       , DATEADD (MM , 1 , getdate())    as '当前时间的下一个月'      --      --当前时间的下一个月 --       , DATEADD (YY , 1 , getdate())    as '当前时间的下一年'       --      --当前时间的下一年 --       , DATEADD (DD , -1 , getdate())   as '当前时间的前一天'       --      --当前时间的前一天 --       , DATEADD (MM , -1 , getdate())   as '当前时间的前一个月'      --      --当前时间的前一个月 --       , DATEADD (YY , -1 , getdate())   as '当前时间的前一年'       --      --当前时间的前一年 --SELECT DATEDIFF(DD,'2016-5-12',GETDATE())  as '相差天数'  --时间差,返回日期 --SELECT DATEDIFF(MM,'2016-4-12',GETDATE())  as '相差月份'  --时间差,返回月份 --SELECT DATEDIFF(YY,'2000-5-14',GETDATE())  as '相差年份'  --时间差,返回年份--SELECT DATENAME(year, GETDATE())   --年--    ,DATENAME(month,  GETDATE())    --月--    ,DATENAME(day,  GETDATE())     --日--    ,DATENAME(week,GETDATE())       --星期--    ,DATENAME(dayofyear, GETDATE())  --当前年份第多少天--    ,DATENAME(weekday,  GETDATE());   --星期--SELECT DATENAME(hour, GETDATE()) as '时'           --当天的第几个小时--    ,DATENAME(minute,GETDATE())   as '分'       --当天小时的第几分--    ,DATENAME(second, GETDATE())   as '秒';     --当天小时分钟的第几秒--函数        语法                                返回值                                            返回数据类型    --DAY            DAY ( date )                        返回表示指定 date 的“日”部分的整数。            int    具有确定性--MONTH        MONTH ( date )                        返回表示指定 date 的“月”部分的整数。            int    具有确定性--YEAR        YEAR ( date )                        返回表示指定 date 的“年”部分的整数。            int    具有确定性--DATENAME    DATENAME ( datepart , date )        返回表示指定日期的指定 datepart 的字符串。        nvarchar    --DATEPART    DATEPART ( datepart , date )        返回表示指定 date 的指定 datepart 的整数。        int    --DATEDIFF    DATEDIFF ( datepart , startdate , enddate )    返回两个指定日期之间所跨的日期或时间 datepart 边界的数目。    int    具有确定性--DATEADD        DATEADD (datepart , number , date )    通过将一个时间间隔与指定 date 的指定 datepart 相加,返回一个新的 datetime 值。    --ISDATE        ISDATE ( expression )    确定 datetime 或 smalldatetime 输入表达式是否为有效的日期或时间值。--            int    只有与 CONVERT 函数一起使用,同时指定了 CONVERT 样式参数且样式不等于 01009109 时,ISDATE 才是确定的。

注意:上面代码都注释了,用的时候撤销注释就行。

0 0
原创粉丝点击