SQL Server 日期函數 集合DATEADD,DATEDIFF,DATENAME,DATEPART

來源:互聯網
上載者:User

SQL Server 裡的日期和時間函數,因為在這方面總是出問題,所以總結一下,本人主要用到的是DATEPART(month, GETDATE()) ,這個東西在ACCESS裡可以直接day(now())就可以,可惜,SQL Server裡的day()是不支援參數的.

SQL Server 裡的日期和時間函數

這些純量涵式對日期和時間輸入值執行操作,並返回一個字串、數字值或日期和時間值。

下表列出日期和時間函數以及它們的確定性屬性。

函數 確定性
DATEADD 具有確定性
DATEDIFF 具有確定性
DATENAME 不具有確定性
DATEPART 除了用作 DATEPART (dw, date) 外都具有確定性。dw 是工作日的日期部分,取決於由設定每周第一天的 SET DATEFIRST 所設定的值。
DAY 具有確定性
GETDATE 不具有確定性
GETUTCDATE 不具有確定性
MONTH 具有確定性
YEAR 具有確定性
確定性函數和非確定性函數

所有的函數都是確定性或非確定性:

  • 在使用特定的輸入值集調用確定性函數的任何時候,它們總是返回相同的結果。
  • 在每次使用特定的輸入值集調用非確定性函數時,它們可能返回不同的結果。

函數是否為確定性函數或非確定性函數稱為函數的確定性。

例如,DATEADD 內建函數是確定性函數,因為對於其三個參數的任何給定參數值集總是返回相同的結果。GETDATE 不是確定性函數,因為總是使用相同的參數喚醒調用它,而它在每次執行時返回結果都不同。

 

 

列印出 pubs 資料庫中標題的時間結構的列表。此時間結構表示當前發布日期加上 21 天。

USE pubsGOSELECT DATEADD(day, 21, pubdate) AS timeframeFROM titlesGO

確定在 pubs 資料庫中標題發布日期和當前日期間的天數。

USE pubsGOSELECT DATEDIFF(day, pubdate, getdate()) AS no_of_daysFROM titlesGO
 

從 GETDATE 返回的日期中提取月份名。

SELECT DATENAME(month, getdate()) AS 'Month Name'
 
GETDATE 函數返回當前日期;然而,比較時並不總是需要完整的日期資訊(通常只是對日期的一部分進行比較)。
SELECT DATEPART(month, GETDATE()) AS 'Month Number'

      
日期部分 縮寫
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw
Hour hh
minute mi, n
second ss, s
millisecond ms
 
以上這個表如果你會的語言多的話可能會覺得太亂了,
各種語言有些地方是不一樣的,但不知道您有沒有發現,
不管什麼語言,
他們都可以直接用全稱而不必非要用縮寫.這個我比較喜歡,什麼時候不會寫就直接用全稱.
原創作者:柳永法(yongfa365)'Blog

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.