sqlserver 转化函数
阅读原文时间:2023年09月30日阅读:1

--查询系统当前时间
select GETDATE() as date;
------------------------- 0-14 ------------------
select CONVERT(VARCHAR(200),GETDATE(),0); //07 30 2019 7:17PM
select CONVERT(VARCHAR(200),GETDATE(),1); //07/30/19
select CONVERT(VARCHAR(200),GETDATE(),2); //19.07.30
select CONVERT(VARCHAR(200),GETDATE(),3); //30/07/19
select CONVERT(VARCHAR(200),GETDATE(),4); //30.07.19
select CONVERT(VARCHAR(200),GETDATE(),5); //30-07-19
select CONVERT(VARCHAR(200),GETDATE(),6); //30 07 19
select CONVERT(VARCHAR(200),GETDATE(),7); //07 30, 19
select CONVERT(VARCHAR(200),GETDATE(),8); //19:18:55
select CONVERT(VARCHAR(200),GETDATE(),9); //07 30 2019 7:19:06:660PM
select CONVERT(VARCHAR(200),GETDATE(),10); //07-30-19
select CONVERT(VARCHAR(200),GETDATE(),11); //19/07/30
select CONVERT(VARCHAR(200),GETDATE(),12); //190730
select CONVERT(VARCHAR(200),GETDATE(),13); //30 07 2019 19:20:05:253
select CONVERT(VARCHAR(200),GETDATE(),14); //19:20:13:120 到 14 截止

------------------------- 20-25 ------------------
select CONVERT(VARCHAR(200),GETDATE(),20); //2019-07-30 19:21:41   到秒
select CONVERT(VARCHAR(200),GETDATE(),21); //2019-07-30 19:21:52.830   到毫秒
select CONVERT(VARCHAR(200),GETDATE(),22); //07/30/19 7:22:26 PM
select CONVERT(VARCHAR(200),GETDATE(),23); //2019-07-30  到天
select CONVERT(VARCHAR(200),GETDATE(),24); //19:22:38   到分钟
select CONVERT(VARCHAR(200),GETDATE(),25); //2019-07-30 19:22:48.460   到 25 截止

------------------------- 100-115 ------------------
select CONVERT(VARCHAR(200),GETDATE(),100); //07 30 2019 7:23PM
select CONVERT(VARCHAR(200),GETDATE(),101); //07/30/2019
select CONVERT(VARCHAR(200),GETDATE(),102); //2019.07.30   到天
select CONVERT(VARCHAR(200),GETDATE(),103); //30/07/2019
select CONVERT(VARCHAR(200),GETDATE(),104); //30.07.2019
select CONVERT(VARCHAR(200),GETDATE(),105); //30-07-2019
select CONVERT(VARCHAR(200),GETDATE(),106); //30 07 2019
select CONVERT(VARCHAR(200),GETDATE(),107); //07 30, 2019
select CONVERT(VARCHAR(200),GETDATE(),108); //19:25:28  到分钟
select CONVERT(VARCHAR(200),GETDATE(),109); //07 30 2019 7:25:36:943PM
select CONVERT(VARCHAR(200),GETDATE(),110); //07-30-2019
select CONVERT(VARCHAR(200),GETDATE(),111); //2019/07/30
select CONVERT(VARCHAR(200),GETDATE(),112); //20190730
select CONVERT(VARCHAR(200),GETDATE(),113); //30 07 2019 19:26:09:960
select CONVERT(VARCHAR(200),GETDATE(),114); //19:26:20:930

select CONVERT(VARCHAR(200),GETDATE(),120); //2019-07-30 19:27:19
select CONVERT(VARCHAR(200),GETDATE(),121); //2019-07-30 19:27:29.277
select CONVERT(VARCHAR(200),GETDATE(),126); //2019-07-30T19:27:58.680
select CONVERT(VARCHAR(200),GETDATE(),127); //2019-07-30T19:28:14.817

select CONVERT(VARCHAR(200),GETDATE(),130); //28 ?? ?????? 1440 7:28:32:260PM
select CONVERT(VARCHAR(200),GETDATE(),131); //28/11/1440 7:28:41:120PM

DATEADD

DATEADD(datepart, number, date)以datepart指定的方式,向指定日期加上一段时间number,返回新的 datetime 值。

-- 系统当前时间加 2 分钟
select DATEADD(MINUTE, 2, GETDATE());
-- 系统当前时间加 2 天
select DATEADD(day, 2, GETDATE());
-- 系统当前时间加 2 月
select DATEADD(month, 2, GETDATE());
-- 系统当前时间加 2 年
select DATEADD(year, 2, GETDATE());

DATEDIFF

DATEDIFF(datepart, startdate, enddate) 以datepart指定的方式,返回 enddate 与 startdate 两个日期之间的差值

------------- DATEDIFF(datepart, startdate, enddate) 函数 -----------
select GETDATE();
----- enddate-startdate 计算分钟差值
select DATEDIFF(MINUTE, '2019-06-30 19:35:40.793', '2019-06-30 19:39:43.793');
----- enddate-startdate 计算时差值
select DATEDIFF(HOUR, '2019-05-20 19:39:43.793', '2019-06-30 19:39:43.793');
----- enddate-startdate 计算天差值
select DATEDIFF(DAY, '2019-05-20 19:39:43.793', '2019-06-30 19:39:43.793');
----- enddate-startdate 计算月差值
select DATEDIFF([MONTH], '2019-03-30 19:39:43.793', '2019-06-30 19:39:43.793');

DATEPART

DATEPART(datepart, date) 函数 ,返回日期date中,interval指定部分所对应的整数值

------------------------- DATEPART(datepart, date) 函数---------------------、
-- 获取当前系统时间 秒
SELECT DATEPART(SECOND, GETDATE()); //46
select DATEPART(ss, GETDATE());
-- 获取当前系统时间 分钟
SELECT DATEPART(MINUTE, GETDATE()); //49
select DATEPART(MM, GETDATE());
-- 获取当前系统时间 小时
select DATEPART(HOUR, GETDATE()); //19
select DATEPART(HH, GETDATE());
-- 获取当前系统时间 天
select DATEPART(DAY, GETDATE()); //30
select DATEPART(dd, GETDATE());
-- 获取当前系统时间 月
select DATEPART(MONTH, GETDATE()); //7
select DATEPART(mm, GETDATE());
-- 获取当前系统时间 年
select DATEPART(YEAR, GETDATE()); //2019
select DATEPART(yyyy, GETDATE());

DATENAME

DATENAME(datepart, date) ,返回日期date中,interval指定部分所对应的字符串名称

-----------------DATENAME(datepart, date) 函数---------------------
select DATENAME(YEAR, GETDATE());      //年
select DATENAME(MONTH, GETDATE());    // 月
select DATENAME(DAY, GETDATE());           //天
select DATENAME(HOUR, GETDATE());      //小时
select DATENAME(MINUTE, GETDATE());  //分钟
select DATENAME(SECOND, GETDATE());  //秒

select DATENAME(Millisecond , GETDATE()); //毫秒

select DATENAME(weekday, GETDATE());  //星期二

参数 datepart 的设定值如下:

值 缩 写(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