[转载]常用的 SQL SERVER 日期函数及格式转换收录

浏览: 3976

SQL SERVER 日期格式化

 SELECT CONVERT(VARCHAR(100), GETDATE(), 0): 05 16 2006 10:57AM
 SELECT CONVERT(VARCHAR(100), GETDATE(), 1): 05/16/06
 SELECT CONVERT(VARCHAR(100), GETDATE(), 2): 06.05.16
 SELECT CONVERT(VARCHAR(100), GETDATE(), 3): 16/05/06
 SELECT CONVERT(VARCHAR(100), GETDATE(), 4): 16.05.06
 SELECT CONVERT(VARCHAR(100), GETDATE(), 5): 16-05-06
 SELECT CONVERT(VARCHAR(100), GETDATE(), 6): 16 05 06
 SELECT CONVERT(VARCHAR(100), GETDATE(), 7): 05 16, 06
 SELECT CONVERT(VARCHAR(100), GETDATE(), 8): 10:57:46
 SELECT CONVERT(VARCHAR(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
 SELECT CONVERT(VARCHAR(100), GETDATE(), 10): 05-16-06
 SELECT CONVERT(VARCHAR(100), GETDATE(), 11): 06/05/16
 SELECT CONVERT(VARCHAR(100), GETDATE(), 12): 060516
 SELECT CONVERT(VARCHAR(100), GETDATE(), 13): 16 05 2006 10:57:46:937
 SELECT CONVERT(VARCHAR(100), GETDATE(), 14): 10:57:46:967
 SELECT CONVERT(VARCHAR(100), GETDATE(), 20): 2006-05-16 10:57:47
 SELECT CONVERT(VARCHAR(100), GETDATE(), 21): 2006-05-16 10:57:47.157
 SELECT CONVERT(VARCHAR(100), GETDATE(), 22): 05/16/06 10:57:47 AM
 SELECT CONVERT(VARCHAR(100), GETDATE(), 23): 2006-05-16
 SELECT CONVERT(VARCHAR(100), GETDATE(), 24): 10:57:47
 SELECT CONVERT(VARCHAR(100), GETDATE(), 25): 2006-05-16 10:57:47.250
 SELECT CONVERT(VARCHAR(100), GETDATE(), 100): 05 16 2006 10:57AM
 SELECT CONVERT(VARCHAR(100), GETDATE(), 101): 05/16/2006
 SELECT CONVERT(VARCHAR(100), GETDATE(), 102): 2006.05.16
 SELECT CONVERT(VARCHAR(100), GETDATE(), 103): 16/05/2006
 SELECT CONVERT(VARCHAR(100), GETDATE(), 104): 16.05.2006
 SELECT CONVERT(VARCHAR(100), GETDATE(), 105): 16-05-2006
 SELECT CONVERT(VARCHAR(100), GETDATE(), 106): 16 05 2006
 SELECT CONVERT(VARCHAR(100), GETDATE(), 107): 05 16, 2006
 SELECT CONVERT(VARCHAR(100), GETDATE(), 108): 10:57:49
 SELECT CONVERT(VARCHAR(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
 SELECT CONVERT(VARCHAR(100), GETDATE(), 110): 05-16-2006
 SELECT CONVERT(VARCHAR(100), GETDATE(), 111): 2006/05/16
 SELECT CONVERT(VARCHAR(100), GETDATE(), 112): 20060516
 SELECT CONVERT(VARCHAR(100), GETDATE(), 113): 16 05 2006 10:57:49:513
 SELECT CONVERT(VARCHAR(100), GETDATE(), 114): 10:57:49:547
 SELECT CONVERT(VARCHAR(100), GETDATE(), 120): 2006-05-16 10:57:49
 SELECT CONVERT(VARCHAR(100), GETDATE(), 121): 2006-05-16 10:57:49.700
 SELECT CONVERT(VARCHAR(100), GETDATE(), 126): 2006-05-16T10:57:49.827
 SELECT CONVERT(VARCHAR(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
 SELECT CONVERT(VARCHAR(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
 常用:
 SELECT CONVERT(VARCHAR(100), GETDATE(), 8): 10:57:46
 SELECT CONVERT(VARCHAR(100), GETDATE(), 24): 10:57:47
 SELECT CONVERT(VARCHAR(100), GETDATE(), 108): 10:57:49
 SELECT CONVERT(VARCHAR(100), GETDATE(), 12): 060516
 SELECT CONVERT(VARCHAR(100), GETDATE(), 23): 2006-05-16

SQL SERVER 中的日期与时间函数

1.  当前系统日期、时间

    SELECT GETDATE()  

2. DATEADD  在向指定日期加上一段时间的基础上,返回新的 DATETIME 值
    例如:向日期加上2天
    SELECT DATEADD(DAY,2,'2004-10-15')  --返回:2004-10-17 00:00:00.000

--当前字段值、加2天、减2天、加2个月、减2个月、加2年、减2年
 SELECT CREATETIME  字段日期,DATEADD("DAY",2,CREATETIME)  加2天,DATEADD("DAY",-2,CREATETIME)  减2天,DATEADD("M",2,CREATETIME)  加2个月,DATEADD("M",-2,CREATETIME)  减2个月,DATEADD("YEAR",2,CREATETIME)  加2年,DATEADD("YEAR",-2,CREATETIME)  减2年 FROM JT_BIZ_LECTURE;

--某一字段(日期型)与当前时间作差
 SELECT CREATETIME,GETDATE()   当前时间,DATEDIFF(DAY,GETDATE(),CREATETIME)   天数 FROM JT_BIZ_LECTURE;

3. DATEDIFF 返回跨两个指定日期的日期和时间边界数。
    SELECT DATEDIFF(DAY,'2004-09-01','2004-09-18')   --返回:17

4. DATEPART 返回代表指定日期的指定日期部分的整数。
   SELECT DATEPART(MONTH, '2004-10-15')  --返回 10

5. DATENAME 返回代表指定日期的指定日期部分的字符串
    SELECT DATENAME(WEEKDAY, '2004-10-15')  --返回:星期五

6. DAY(), MONTH(),YEAR() --可以与DATEPART对照一下

SELECT 当前日期=CONVERT(VARCHAR(10),GETDATE(),120)
 ,当前时间=CONVERT(VARCHAR(8),GETDATE(),114)

SELECT DATENAME(DW,'2004-10-15')

SELECT 本年第多少周=DATENAME(WEEK,'2004-10-15')
       ,今天是周几=DATENAME(WEEKDAY,'2004-10-15')

函数 参数/功能
GETDATE( ) 返回系统目前的日期与时间
DATEDIFF (INTERVAL,DATE1,DATE2) 以INTERVAL 指定的方式,返回DATE2 与DATE1两个日期之间的差值 DATE2-DATE1
DATEADD (INTERVAL,NUMBER,DATE) 以INTERVAL指定的方式,加上NUMBER之后的日期
DATEPART (INTERVAL,DATE) 返回日期DATE中,INTERVAL指定部分所对应的整数值
DATENAME (INTERVAL,DATE) 返回日期DATE中,INTERVAL指定部分所对应的字符串名称


参数 INTERVAL的设定值如下:

值 缩 写(SQL SERVER) (ACCESS 和 ASP) 说明
 YEAR YY YYYY 年 1753 ~ 9999
 QUARTER QQ Q   季 1 ~ 4
 MONTH MM M   月1 ~ 12
 DAY OF YEAR DY Y 一年的日数,一年中的第几日 1-366
 DAY DD D   日,1-31
 WEEKDAY DW W 一周的日数,一周中的第几日 1-7
 WEEK WK WW 周,一年中的第几周 0 ~ 51
 HOUR HH H   时0 ~ 23
 MINUTE MI N 分钟0 ~ 59
 SECOND SS S 秒 0 ~ 59
 MILLISECOND MS - 毫秒 0 ~ 999


ACCESS 和 ASP 中用DATE()和NOW()取得系统日期时间;其中DATEDIFF,DATEADD,DATEPART也同是能用于ACCESS和ASP中,这些函数的用法也类似

举例:
 1.GETDATE() 用于SQL SERVER :SELECT GETDATE()

 2.DATEDIFF('S','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒
 DATEDIFF('D','2005-07-20','2005-7-25 22:56:32')返回值为 5 天

 3.DATEPART('W','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1,周六为7)
 DATEPART('D','2005-7-25 22:56:32')返回值为 25即25号
 DATEPART('Y','2005-7-25 22:56:32')返回值为 206即这一年中第206天
 DATEPART('YYYY','2005-7-25 22:56:32')返回值为 2005即2005年                                                                        

以前收藏的笔记,就是平常会用到,不知原文作者是谁,如有侵权请告知。

推荐 0
本文由 BIWORK 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册