第九節:SQLServer函數大全(二)--類型轉換函數、日期函數


一. 類型轉換函數

  在處理不同數據類型的值時,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 : 原創博客請在轉載時保留原文鏈接或在文章開頭加上本人博客地址,否則保留追究法律責任的權利。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM