EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1508|回复: 0

常用的 SQL SERVER 日期函数及格式转换

[复制链接]

17

主题

117

金钱

199

积分

入门用户

发表于 2019-8-28 14:32:17 | 显示全部楼层 |阅读模式

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年                       
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 ) 

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表