一. 類型轉換函數
在處理不同數據類型的值時,SQL Server一般會自動進行隱士類型轉換。對於數據類型相近的值是有效的,比如int和float,但是對於其它數據類型,例如整型和字符類型,隱士轉換就無法實現了,此時必須使用顯示轉換。為了實現這種顯示轉換,T-SQL提供了兩個顯示轉換函數,分別是CAST和CONVERT函數。
CAST(x AS type) 和 CONVERT(type,x) 函數將一個類型的值轉換為另一個類型的值。
select CAST('121231' AS DATE), CAST(100 AS CHAR(3)),CAST('2012-05-01 12:11:10' AS CHAR(3)), select CONVERT(DATE,'2012-05-01 12:11:10'),CONVERT(CHAR(3),100 ),CONVERT(DATE,'2012-05-01 12:11:10')

二. 日期函數
1. 獲取系統當前日期的函數(普通時間和UTC時間)
select GETDATE() as CurrentTime,GETUTCDATE() as UTCTIme

2. 返回指定日期的d是一個月中的第幾天、月份、年數
select DAY('2020-08-05 12:11:08') select MONTH('2020-08-05 12:11:08') select YEAR('2020-08-05 12:11:08')

3. 返回指定日期的 年、月、第n天、天、第n周、星期幾、小時、分鍾、秒
SELECT DATENAME(year,'2020-04-03 08:12:36') AS yearValue, DATENAME(month,'2020-04-03 08:12:36') AS monthValue, DATENAME(dayofyear,'2020-04-03 08:12:36') AS dayofyearValue, --一年當中的第幾天 DATENAME(day,'2020-04-03 08:12:36') AS dayValue, DATENAME(week,'2020-04-03 08:12:36') AS weekValue, DATENAME(weekday,'2020-04-03 08:12:36') AS weekdayValue, DATENAME(hour,'2020-04-03 08:12:36') AS hourValue, DATENAME(minute,'2020-04-03 08:12:36') AS minuteValue, DATENAME(second,'2020-04-03 08:12:36') AS secondValue

4. 獲取日期中指定部分的整數值的函數
SELECT DATEPART(year,'2020-04-03 08:12:36') AS yearValue, DATEPART(month,'2020-04-03 08:12:36') AS monthValue, DATEPART(dayofyear,'2020-04-03 08:12:36') AS dayofyearValue;

5. 日期的加運算
DATEADD(dp,num,d)函數用於執行日期的加運算,返回指定日期值加上一個時間段后的新日期。dp指定日期中進行加法運算的部分值,例如:year,month,day,hour,minute,second,millsecond等,num指定與dp相加的值,如果該值為非整數值,將舍棄該值的小數部分,d為執行加法運算的日期。
SELECT DATEADD(year,1,'2020-04-03 08:12:36') AS yearAdd, DATEADD(month ,2, '2020-04-03 08:12:36') AS weekdayAdd, DATEADD(hour,3,'2020-04-03 08:12:36') AS hourAdd;

!
- 作 者 : Yaopengfei(姚鵬飛)
- 博客地址 : http://www.cnblogs.com/yaopengfei/
- 聲 明1 : 如有錯誤,歡迎討論,請勿謾罵^_^。
- 聲 明2 : 原創博客請在轉載時保留原文鏈接或在文章開頭加上本人博客地址,否則保留追究法律責任的權利。
