T-SQL常用日期函數


/*

Environment: win7 + sql server 2008 r2
Author: CC
Desctiption:
    常用日期函數整理:
    DAY,MONTH,YEAR  , DATEPART
    DATEADD,DATENAME ,
    DATEDIFF ,isdate 的使用
*/

--截取一個時間的年,月,日
select DAY(GETDATE())
      ,MONTH(GETDATE()) --MONTH() 函數的參數為整數時,一律返回整數值1,即SQL Server 認為其是1900 年1 月。 
      ,YEAR(GETDATE())  --其日期值應在1753年到9999年之間,這是SQL Server系統所能識別的日期范圍,否則會出現錯誤。 
--運用DATEPART函數
UNION ALL 
SELECT  DATEPART(DAY , GETDATE())
        ,DATEPART(MONTH , GETDATE())
        ,DATEPART(YEAR , GETDATE())
/*
(無列名)    (無列名)    (無列名)
17    7    2012
17    7    2012
*/

SELECT DATENAME (DD,GETDATE())  --返回類型為字符型
 /* (無列名)
    17      */

--用 dateadd 來獲得下一個時間或之前的時間日期

 select   DATEADD (DD , 1 , getdate())  --當前時間的下一天
        , DATEADD (MM , 1 , getdate())  --當前時間的下一個月
        , DATEADD (YY , 1 , getdate())  --當前時間的下一年
        , DATEADD (DD , -1 , getdate()) --當前時間的前一天
        , DATEADD (MM , -1 , getdate()) --當前時間的前一個月
        , DATEADD (YY , -1 , getdate()) --當前時間的前一年
        
--2012-07-18 15:47:05.663    2012-08-17 15:47:05.663    2013-07-17 15:47:05.663    2012-07-16 15:47:05.663    2012-06-17 15:47:05.663    2011-07-17 15:47:05.663

SELECT DATEDIFF(DD,'2012-07-11 15:03:11.623',GETDATE())   --時間差
--6

SELECT DATENAME(dayofyear,GETDATE()) ,DATEDIFF(dd,'2012-01-01',getdate())
--199    198

SELECT DATENAME(year, GETDATE())   
    ,DATENAME(month,  GETDATE())    
    ,DATENAME(day,  GETDATE())     
    ,DATENAME(week,GETDATE()) 
    ,DATENAME(dayofyear, GETDATE())
    ,DATENAME(weekday,  GETDATE());  
 --2012    July    17    29    199    Tuesday
       
SELECT DATENAME(hour, GETDATE())  --當天的第幾個小時
    ,DATENAME(minute,GETDATE())          --當天小時的第幾分
    ,DATENAME(second, GETDATE());      --當天小時分鍾的第幾秒
---15    48    9

SELECT ISDATE('2012-07-17') UNION ALL
SELECT ISDATE('2012-07-17 15:12:00') UNION ALL
SELECT ISDATE(111)
/*
1
1
0
*/

/*
函數        語法                                返回值                                            返回數據類型    
DAY            DAY ( date )                        返回表示指定 date 的“日”部分的整數。            int    具有確定性
MONTH        MONTH ( date )                        返回表示指定 date 的“月”部分的整數。            int    具有確定性
YEAR        YEAR ( date )                        返回表示指定 date 的“年”部分的整數。            int    具有確定性
DATENAME    DATENAME ( datepart , date )        返回表示指定日期的指定 datepart 的字符串。        nvarchar    
DATEPART    DATEPART ( datepart , date )        返回表示指定 date 的指定 datepart 的整數。        int    
DATEDIFF    DATEDIFF ( datepart , startdate , enddate )    返回兩個指定日期之間所跨的日期或時間 datepart 邊界的數目。    int    具有確定性
DATEADD        DATEADD (datepart , number , date )    通過將一個時間間隔與指定 date 的指定 datepart 相加,返回一個新的 datetime 值。    

ISDATE        ISDATE ( expression )    確定 datetime 或 smalldatetime 輸入表達式是否為有效的日期或時間值。
            int    只有與 CONVERT 函數一起使用,同時指定了 CONVERT 樣式參數且樣式不等於 0、100、9 或 109 時,ISDATE 才是確定的。
*/


免責聲明!

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



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