SQL Server 裡的日期和時間函式

bluelight發表於2011-09-27

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 pubs
GO
SELECT DATEADD(day, 21, pubdate) AS timeframe
FROM titles
GO

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

USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO

 

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

SELECT DATENAME(month, getdate()) AS 'Month Name'

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

日期部分縮寫
yearyy, yyyy
quarterqq, q
monthmm, m
dayofyeardy, y
daydd, d
weekwk, ww
weekdaydw
Hourhh
minutemi, n
secondss, s
millisecondms
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1724534/viewspace-1055359/,如需轉載,請註明出處,否則將追究法律責任。

相關文章