Sql Server函數全解(四)日期和時間函數


  日期和時間函數主要用來處理日期和時間值,本篇主要介紹各種日期和時間函數的功能和用法,一般的日期函數除了使用date類型的參數外,也可以使用datetime類型的參數,但會忽略這些值的時間部分。相同的,以time類型值為參數的函數,可以接受datetime類型的參數,但會忽略日期部分。

1.獲取系統當前日期的函數getDate();

 getDate()函數用於返回當前數據庫系統的日期和時間,返回值的類型為datetime.
【例】select getDate() as currentTime;

2.返回UTC日期的函數UTCDATE()

 UTCDATE()函數返回當前UTC(世界標准時間)日期值.
【例】select GETUTCDATE() AS UTCtime;

 因為本人深處朝廷管轄范圍之內,位於東八時區,所以系統的當前時間比UTC提前8小時,所以這里顯示的UTC時間需要減去8個小時的時差。

3.獲取天數的函數DAY(d)

 DAY(d)函數用於返回指定日期的d是一個月中的第幾天,范圍從1~31,該函數在功能上等價於DATEPART(dd,d)。
【例】select DAY('2015-04-30 01:01:01');

4.獲取月份的函數MONTH(d)

 MONTH(d)函數用於返回指定日期d中月份的整數值。
【例】SELECT MONTH('2015-04-30') AS monthValue; 

5.獲取年份的函數YEAR(d)

 YEAR(d)函數返回指定日期d中年份的整數值。
【例】SELECT YEAR('2015-04-30'),YEAR(1997-07-01);

6.獲取日期中指定部分字符串值的函數DATENAME(dp,d)

 DATENAME(dp,d)根據dp指定返回日期中相應部分的值,例如YEAR返回日期中的年份值,MONTH返回日期中的月份值,dp其它可以取的值有:quater,dayofyear,day,week,weekday,hour,minute,second等。
【例】SELECT DATENAME(year,'2015-04-30 01:01:01') AS yearValue;
   SELECT DATENAME(quater,'2015-04-30 01:01:01') AS quaterValue;
   SELECT DATENAME(dayofyear,'2015-04-30 01:01:01') AS dayofyearValue;
   SELECT DATENAME(day,'2015-04-30 01:01:01') AS dayValue;
   SELECT DATENAME(week,'2015-04-30 01:01:01') AS weekValue;
   SELECT DATENAME(weekday,'2015-04-30 01:01:01') AS weekdayValue;
   SELECT DATENAME(hour,'2015-04-30 01:01:01') AS hourValue;
   SELECT DATENAME(minute,'2015-04-30 01:01:01') AS minuteValue;
   SELECT DATENAME(second,'2015-04-30 01:01:01') AS secondValue;

7.獲取日期中指定部分的整數值的函數DATEPART(dp,d)

 DATEPART(dp,d)函數返回指定日期中相應的部分的整數值,dp的取值與DATETIME函數相同。
【例】SELECT DATEPART(year,'2015-04-30 01:01:01'),DATEPART(month,'2015-04-30 01:01:01'),
       DATEPART(dayofyear,'2015-04-30 01:01:01');

8.計算日期和時間的函數DATEADD(dp,num,d)

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

 

日期函數上面例子的腳本:

 

-時間函數
select  getDate() as currentTime;
select  GETUTCDATE() AS UTCtime;
select  DAY('2015-04-30 01:01:01');
SELECT  MONTH('2015-04-30')AS monthValue;
SELECT  YEAR('2015-04-30'),YEAR('1997-07-01');

SELECT DATENAME(year,'2015-04-30 01:01:01') AS yearValue,
       DATENAME(quarter,'2015-04-30 01:01:01') AS quaterValue,
       DATENAME(dayofyear,'2015-04-30 01:01:01') AS dayofyearValue,
       DATENAME(day,'2015-04-30 01:01:01') AS dayValue,
       DATENAME(week,'2015-04-30 01:01:01') AS weekValue,
       DATENAME(weekday,'2015-04-30 01:01:01') AS weekdayValue,
       DATENAME(hour,'2015-04-30 01:01:01') AS hourValue,
       DATENAME(minute,'2015-04-30 01:01:01') AS minuteValue,
       DATENAME(second,'2015-04-30 01:01:01') AS secondValue;
 
SELECT  DATEPART(year,'2015-04-30 01:01:01'),
        DATEPART(month,'2015-04-30 01:01:01'),
        DATEPART(dayofyear,'2015-04-30 01:01:01');
        
SELECT    DATEADD(year,1,'2015-04-30 01:01:01') AS yearAdd,
        DATEADD(month ,2, '2015-04-30 01:01:01') AS weekdayAdd,
        DATEADD(hour,2,'2015-04-30 01:01:01') AS hourAdd;


免責聲明!

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



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