GETDATE,datepart,DATEPART,DATEADD,DATEDIFF,DATENAME,YEAR,MONTH,DAY,CONVERT ...
GETDATE()
GETDATE()
函數從 SQL Server 返回當前的時間和日期。
語法:GETDATE()
RETURNS
DATETIME
SELECT GETDATE();--// 2017-06-20 15:35:27.980
datepart
日期部分的參數
日期部分 | datepart | 簡寫 |
---|---|---|
年 | YEAR | yy, yyyy |
季度 | QUARTER | qq, q |
月 | MONTH | mm, m |
周 | WEEK | wk, ww |
星期 | WEEKDAY | dw, w |
年中的日 | DAYOFYEAR | dy, y |
日 | DAY | dd, d |
小時 | HOUR | hh |
分鐘 | MINUTE | mi, n |
秒 | SECOND | ss, s |
毫秒 | MILLISECOND | ms |
微秒 | MICROSECOND | mcs |
納秒 | NANOSECOND | ns |
DATEPART
DATEPART()
函數用於返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。
語法:DATEPART(datepart,date)
datepart
日期參數
date
參數是合法的日期表達式
RETURNSINT
SELECT GETDATE();--// 2017-06-19 18:06:19.687
SELECT DATEPART(YEAR,GETDATE());--// 2017
SELECT DATEPART(QUARTER,GETDATE());--// 2
SELECT DATEPART(MONTH,GETDATE());--// 6
SELECT DATEPART(WEEK,GETDATE());--// 25
SELECT DATEPART(WEEKDAY,GETDATE());--// 2
SELECT DATEPART(DAYOFYEAR,GETDATE());--// 170
SELECT DATEPART(DAY,GETDATE());--// 19
SELECT DATEPART(HOUR,GETDATE());--// 18
SELECT DATEPART(MINUTE,GETDATE());--// 6
SELECT DATEPART(SECOND,GETDATE());--// 19
SELECT DATEPART(MILLISECOND,GETDATE());--// 687
SELECT DATEPART(MICROSECOND,GETDATE());--// 687000
SELECT DATEPART(NANOSECOND,GETDATE());--// 687000000
DATEADD
DATEADD()
函數在日期中添加或減去指定的時間間隔。
語法:DATEADD(datepart,number,date)
datepart
日期參數
number
是間隔數,對於未來的時間,此數是正數,對於過去的時間,此數是負數
date
參數是合法的日期表達式
RETURNSDATETIME
SELECT GETDATE();--// 2017-06-20 15:35:27.980
SELECT DATEADD(DAY,1,GETDATE());--// 2017-06-21 15:35:27.980
SELECT DATEADD(DAY,-1,GETDATE());--// 2017-06-19 15:35:27.980
DATEDIFF
DATEDIFF()
函數返回兩個日期之間的時間。
語法:DATEDIFF(datepart,startdate,enddate)
datepart
日期參數
startdate
和enddate
是合法的日期表達式
RETURNSINT
SELECT DATEDIFF(DAY,'2017-05-01','2017-06-01');--// 31
SELECT DATEDIFF(DAY,'2017-06-01','2017-05-01');--// -31
DATENAME
DATENAME()
函數用於返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。
語法:DATENAME(datepart,date)
datepart
日期參數
date
參數是合法的日期表達式
RETURNSNVARCHAR
示例見DATEPART
。
DATENAME
與DATEPART
的不同
兩者的返回值類型不同,DATENAME()
返回的是字元串類型(nvarchar),DATEPART()
返回的是整數(int)。
YEAR
YEAR()
函數用於返回日期的年份。
語法:YEAR(date)
date
參數是合法的日期表達式
RETURNSINT
等同於DATEPART(YEAR,date)
SELECT YEAR('2017-06-20');--// 2017
SELECT DATEPART(YEAR,'2017-06-20');--// 2017
MONTH
MONTH()
函數用於返回日期的月份。
語法:MONTH(date)
date
參數是合法的日期表達式
RETURNSINT
等同於DATEPART(MONTH,date)
SELECT MONTH('2017-06-20');--// 6
SELECT DATEPART(MONTH,'2017-06-20');--// 6
DAY
DAY()
函數用於返回日期的日。
語法:DAY(date)
date
參數是合法的日期表達式
RETURNSINT
等同於DATEPART(DAY,date)
SELECT DAY('2017-06-20');--// 20
SELECT DATEPART(DAY,'2017-06-20');--// 20
CONVERT
CONVERT()
函數是把日期轉換為新數據類型的通用函數。
CONVERT()
函數可以用不同的格式顯示日期/時間數據。
語法:CONVERT(data_type(length),data_to_be_converted,style)
data_type(length)
規定目標數據類型(帶有可選的長度)
data_to_be_converted
含有需要轉換的值
style
規定日期/時間的輸出格式
RETURNSdata_type(length)
可以使用的 style
值:
Style ID | Style 格式 |
---|---|
100 或者 0 | mon dd yyyy hh:miAM (或者 PM) |
101 | mm/dd/yy |
102 | yy.mm.dd |
103 | dd/mm/yy |
104 | dd.mm.yy |
105 | dd-mm-yy |
106 | dd mon yy |
107 | Mon dd, yy |
108 | hh:mm:ss |
109 或者 9 | mon dd yyyy hh:mi:ss:mmmAM(或者 PM) |
110 | mm-dd-yy |
111 | yy/mm/dd |
112 | yymmdd |
113 或者 13 | dd mon yyyy hh:mm:ss:mmm(24h) |
114 | hh:mi:ss:mmm(24h) |
120 或者 20 | yyyy-mm-dd hh:mi:ss(24h) |
121 或者 21 | yyyy-mm-dd hh:mi:ss.mmm(24h) |
126 | yyyy-mm-ddThh:mm:ss.mmm(沒有空格) |
130 | dd mon yyyy hh:mi:ss:mmmAM |
131 | dd/mm/yy hh:mi:ss:mmmAM |
SELECT CONVERT(VARCHAR(100), GETDATE(), 0);--// 06 20 2017 4:27PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 1);--// 06/20/17
SELECT CONVERT(VARCHAR(100), GETDATE(), 2);--// 17.06.20
SELECT CONVERT(VARCHAR(100), GETDATE(), 3);--// 20/06/17
SELECT CONVERT(VARCHAR(100), GETDATE(), 4);--// 20.06.17
SELECT CONVERT(VARCHAR(100), GETDATE(), 5);--// 20-06-17
SELECT CONVERT(VARCHAR(100), GETDATE(), 6);--// 20 06 17
SELECT CONVERT(VARCHAR(100), GETDATE(), 7);--// 06 20, 17
SELECT CONVERT(VARCHAR(100), GETDATE(), 8);--// 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 9);--// 06 20 2017 4:27:36:970PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 10);--// 06-20-17
SELECT CONVERT(VARCHAR(100), GETDATE(), 11);--// 17/06/20
SELECT CONVERT(VARCHAR(100), GETDATE(), 12);--// 170620
SELECT CONVERT(VARCHAR(100), GETDATE(), 13);--// 20 06 2017 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 14);--// 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 20);--// 2017-06-20 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 21);--// 2017-06-20 16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 22);--// 06/20/17 4:27:36 PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 23);--// 2017-06-20
SELECT CONVERT(VARCHAR(100), GETDATE(), 24);--// 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 25);--// 2017-06-20 16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 100);--// 06 20 2017 4:27PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 101);--// 06/20/2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 102);--// 2017.06.20
SELECT CONVERT(VARCHAR(100), GETDATE(), 103);--// 20/06/2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 104);--// 20.06.2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 105);--// 20-06-2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 106);--// 20 06 2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 107);--// 06 20, 2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 108);--// 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 109);--// 06 20 2017 4:27:36:970PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 110);--// 06-20-2017
SELECT CONVERT(VARCHAR(100), GETDATE(), 111);--// 2017/06/20
SELECT CONVERT(VARCHAR(100), GETDATE(), 112);--// 20170620
SELECT CONVERT(VARCHAR(100), GETDATE(), 113);--// 20 06 2017 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 114);--// 16:27:36:970
SELECT CONVERT(VARCHAR(100), GETDATE(), 120);--// 2017-06-20 16:27:36
SELECT CONVERT(VARCHAR(100), GETDATE(), 121);--// 2017-06-20 16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 126);--// 2017-06-20T16:27:36.970
SELECT CONVERT(VARCHAR(100), GETDATE(), 130);--// 26 ????? 1438 4:27:36:970PM
SELECT CONVERT(VARCHAR(100), GETDATE(), 131);--// 26/09/1438 4:27:36:970PM