SQL Server日期時間函數

來源:互聯網
上載者:User

標籤:class   source   star   oda   mon   精確   diff   補充   where   

日期時間函數

  1、擷取當前日期GetDate

   getdate()函數以datetime資料類型的格式返回當前SQLServer伺服器所在電腦的日期和時間。其文法格式為getdate()。傳回值舍入到最近的秒小數部分,精度為.333秒資料庫十七位移量不包含在內。

     樣本:

  select getdate() --輸出 2013-03-09 15:16:00.570

  2、GetUTCDate 擷取UTC時間值

  select GETUTCDATE() -- 2013-06-18 08:02:53.253

  這個擷取到的是UTC時間。

  3、擷取年度資訊YEAR  

   year函數以int資料類型的格式返回特定日期的年度資訊。其文法格式為YEAR(date資料)。其中的date資料時一個可以解析為time、date、smalldatetime、datetime、datetime2或datetimeoffset值的運算式,列運算式、使用者定義的變數或字串文字。

   樣本:

  select year(getdate()) --輸出 2013

  4、擷取月份資訊MONTH

   month函數以int資料類型的格式返回特定日期的月份資訊。其文法格式為month(date資料)。其中的date資料時一個可以解析為time、date、smalldatetime、datetime、datetime2或datetimeoffset值的運算式,列運算式、使用者定義的變數或字串文字。

    樣本:

  select month(getdate()) --輸出 3

  5、擷取天數資訊day

   day函數以int資料類型的格式返回特定日期的天數資訊。其文法格式為day(date資料)。其中的date資料時一個可以解析為time、date、smalldatetime、datetime、datetime2或datetimeoffset值的運算式,列運算式、使用者定義的變數或字串文字。

    樣本:

  select day(getdate()) --輸出 9

  6、擷取任意時間部分DatePart

   datepart函數以int資料類型的格式返回某個日期時間資料的指定部分。

   1、文法格式:

  datepart( datepart , date資料 )

   datepart:特定的要返回的資料的格式代碼。

  date資料:一個可以解析為time、date、smalldatetime、datetime、datetime2或者datetimeoffset值的運算式、列表運算式、使用者定義的變數或字串文字。

   2、Datepart取值

    Datepart部分的取值如下表所示:

說明 取值
返回年度資訊 Year、YYYY、YY
返回月份資訊 Month、MM、M
返回日期資訊 Day、DD、D
返回周資訊 Week、WK、WW
返回每周星期幾資訊 WeekDay、DW
返回季度資訊 Quarter、QQ、Q
返回一年中第幾天的資訊 DayOfYear、DY、Y
返回小時資訊 Hour、HH
返回分鐘資訊 Minute、MI、N
返回秒資訊 Second、SS、SS
返回毫秒資訊 MillSecond、MS

   7、擷取任意時間部分DateName

    返回表示指定日期的指定日期部分的字串。

  SELECT DateName(Quarter,GetDate()) --輸出 2(6月)

  樣本:

  select datepart(Quarter,getdate()) --輸出 1 現在是第幾季度

  8、日期加法DATEADD

    dateadd函數將某個日期加上一個特定的時間間隔值後返回datetime資料類型的值。

    1、文法格式:

  dateadd (datepart,numer,date資料)

    numer:用於與detepart相加的值。如果指定了非整數值,則將捨棄該值的小數部分。

    date資料:一個用於解析為time、date、smalldatetime、datetime、datetime2、或datetimeoffset值的運算式、列運算式、使用者定義的變數或字串文字。

    datepart:時間部分。上節。

    樣本:

  select getdate()    --輸出 2013-03-09 16:03:59.293  select dateadd(YYYY,10,getdate())    --加了十年    輸出2023-03-09 16:04:36.893        

  8、日期減法DATEDIFF

    datediff函數將兩個特定的日期資料相減,得到的結果可以按照detepart指定的格式返回特定的資料。

    1、文法格式:

  datediff(datepart,startdate,enddate)

    執行中將使用enddate減以startdate的值,如果startdate晚於enddate將返回負值。執行結果如果超出整數範圍將提示錯誤。

    startdate:一個可以解析為time、date、smalldate、datetime、datetime2或datetimeoffset值的運算式、列運算式、使用者定義的變數或字串文字。

    enddate:一個可以解析為time、date、smalldate、datetime、datetime2或datetimeoffset值的運算式、列運算式、使用者定義的變數或字串文字。

    datepart:時間部分。

    樣本:

  select datediff(YYYY,‘2011-11-11‘,‘2012-12-12‘)    --輸出1 年份相減之後的確是1  select datediff(day,‘2011-11-11‘,‘2012-12-12‘)     --輸出 397 兩個日期相差的天數

    2013-3-13日補充,用此方法查詢當前的記錄:

  select * from test where datediff(day,Rq,getdate()) = 0 --其中Rq為日期列,此行代碼的意思是什麼呢?getdate()減去Rq列的值為0,Rq列的值與今天相減,號數為0  

  9、SQLServer 2008中新增的日期時間型函數

    1、擷取系統時間 SysDateTime

    sysdatetime函數以datetime2(7)資料類型的格式返回當前系統的日期和時間。其文法格式為sysdatetime()。傳回值有七個小數位,但只精確到10毫秒。資料庫位移量未包含在內。

  SELECT SYSDATETIME()  --2013-06-17 22:17:59.0610211

    2、擷取當前日期和時間 SysDateTimeOffset

    sysdatetimeoffset函數以datetimeoffset(7)資料類型的格式返回當前系統的日期和時間。其文法格式為sysdatetimeoffset()。傳回值有七個小數位,但只精確到10毫秒。資料庫時區位移量包含在內。

  SELECT sysdatetimeoffset()  --2013-06-17 22:18:30.1788009 +08:00

    3、擷取系統UTC時間 SysUTCDateTime

  select SysUTCDateTime() -- 2013-06-18 08:09:17.8229505

  10、Current_TimeStamp當前資料庫系統時間戳

  返回當前資料庫系統時間戳,傳回值的類型為 datetime,並且不含資料庫時區位移量。 此值得自運行 SQL Server 執行個體的電腦的作業系統。等價於GetDate();

  SELECT CURRENT_TIMESTAMP --2013-06-18 16:16:10.007

  11、SWITCHOFFSET更改時間位移量

    SwitchOffset更改 DateTimeOffset 值的時區位移量並保留 UTC 值。

  SELECT SysDateTimeOffset()    -- 2013-06-18 16:40:34.4322865 +08:00  SELECT SWITCHOFFSET (SysDateTimeOffset(), ‘+07:00‘) --2013-06-18 15:40:53.5403794 +07:00

  12、TodateTimeOffset  datetime2轉datetimeoffset

  返回從 datetime2 運算式轉換而來的一個 datetimeoffset 值。

  SELECT SysDateTimeOffset()    -- 2013-06-18 16:40:34.4322865 +08:00  SELECT TodateTimeOffset(GetDate(),‘+07:00‘) --2013-06-18 16:46:10.537 +07:00

  留意到以上代碼是只更改時區,但是不更改時值。

  SysDateTime 和 SysUTCDate 在秒小數部分精度上要比 GetDate 和 GetUTCDate 高。 SysDateTimeOffset 包含系統時區位移量。 SysDateTime、SysUTCDate 和 SysDateTimeOffset 可分配給採用任意日期和時間類型的變數。

  13、判斷是否為日期資料isDate

    ISDATE函數可以驗證某個輸入值是否為有效日期資料

    1、文法結構:

  ISDATE(expression)

    2、傳回值

     若運算式為有效日期則返回 1 ,否則返回 0 。

    樣本:

    select isdate(‘2012-12-12‘)    -- 輸出1    select isdate(‘xxxx-12-12‘)  -- 輸出0

 http://technet.microsoft.com/zh-cn/library/ms186724.aspx#ModifyDateandTimeValues

SQL Server日期時間函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.