number
是用來增加datepart的值,如果指定的不是一個整數,則將舍棄此值的小數部分。
例如,如果為datepart指定day,為number指定1.75,則day將增加1。
date
是返回DateTime類型或SmallDateTime值或日期格式字符串的表達式。
返回值類型:
返回DateTime,如果date參數是SmallDateTime,返回SmallDateTime。
示例:
此示例打印出當前時間加上21天,
DateAdd(day, 21, GetDate())
number傳負數,大于本月剩余天數的值都是可以的,函數會自己演算。
[2] DateDiff()
作用:
返回跨兩個指定日期的日期和時間邊界數。
語法:
DateDiff(datepart, startDate, endDate)
參數:
datepart
DateAdd()中以對此參數進行了介紹,這里不再贅述,后面的datepart參數也同。
startDate
是計算的開始日期,startDate是返回DateTime或SmallDateTime值或日期格式字符串的表達式。
因為SmallDateTime只精確到分鐘,所以當用SmallDateTime時,秒和毫秒總是0。
endDate
是計算的總是日期。endDate是返回DateTime或SmallDateTime值或日期格式字符串的表達式。
返回值類型:
int
解釋:
startDate是從endDate減去。如果startDate比endDate玩,返回負值。
當超出整數值范圍,DateDiff產生錯誤。
對于毫秒,最大數是24天20小時31分鐘零23.647秒。
對于秒,最大數是68年。
計算跨分鐘、秒和毫秒這些邊界的方法,使得DateDiff給出的結果在全部數據類型中是一致的。
結果是帶正負號的整數值,其等于跨第一個和第二個日期間的datepart邊界值。
例如,在1月4日(星期日)和1月11日(星期日)之間的星期數是1。
示例:
select DateDiff(day, '2009-10-24', GetDate())
[3] Day()
作用:
返回代表指定日期的天的日期部分整數。
語法:
Day(date)
參數:
date
類型為DateTime或SmallDateTime的表達式。
返回值類型:
int
解釋:
此函數等價于DatePart(dd, date)
示例:
下面的示例從2009-10-4中返回day部分
select Day('2009-10-4')
會得到4,即日期部分
[4] Month()
作用:
返回代表指定日期月份的整數。
語法:
Month(date)
參數:
date
返回DateTime或SmallDateTime值或日期格式字符串的表達式。
返回值類型:
int
解釋:
此函數等價于等價于DatePart(mm, date)
示例:
下面的示例從2009-10-4中返回month部分
select Month('2009-10-4')
會獲得10,即月份部分
[5] Year()
作用:
返回表示指定日期中的年份的整數。
語法:
Year(date)
參數:
date
DateTime或SmallDateTime類型的表達式。
返回值類型:
int
解釋:
此函數等價于DatePart(yy, date)
示例:
下例從日期2009-10-4中返回年分數
select Year('2009-10-4')
獲得2009,即年份部分
2. 非確定性函數:
[1] DateName()
作用:
返回代表指定日期的制定日期部分的字符串。
語法:
DateName(datepart, date)
參數:
datepart
同DateAdd()
返回值類型:
nvarchar
解釋:
SQL Server自動在字符和DateTime值間按需求進行交換,例如,當字符與DateTime值進行比較時。
示例:
此示例從GetDate返回的日期中提取月份名,
select DateName(month, GetDate())
獲得October
[2] GetDate()
作用:
按DateTime值的 Microsoft® SQL Server™ 標準內部格式返回當前系統日期和時間。
語法:
GetDate()
返回值類型:
DateTime
解釋:
日期函數可以用在select語句的選擇列表或用在查詢的where子句中,
在設計報表時,GetDate函數可用于在每次生成報表時打印當前日期和時間。
GetDate對于跟蹤活動也很有用,諸如在記錄事務在某一賬戶上發生的時間。
示例:
A. 用GetDate返回當前日期和日期和時間
下面的示例得出當前系統日期和時間:
select GetDate()
B. 在create table語句中使用GetDate
下面的示例創建Employees表并用GetDate給出員工雇傭時間的默認值。
use Test
go
create table Employees (
id int identity(1, 1),
empName varchar(40) not null,
createDtm DateTime default GetDate()
)
go
[3] GetUtcDate()
作用:
返回表示當前UTC時間(世界時間坐標或稱格林威治標準時間)的DateTime值。
當前的UTC時間得自當前的本地時間和運行SQL Server的計算機操作系統中的設置。
語法:
GetUtcDate()
返回值類型:
DateTime
解釋:
GetUtcDate是非確定性函數。引用該列的視圖和表達式無法進行索引。
GetUtcDate無法在用戶定義的函數內使用。
最后的這個比較特別,它是DatePart()
除了用作DatePart(dw, date)外都具有確定性。
dw是工作日的日期部分。
作用:
返回代表指定日期的指定日期部分的函數。
語法:
DatePart(datepart, date)
參數:
datepart
這里多了個weekday(dw),返回對應于星期中某天的數,
例如,Sunday = 1,Saturday = 7。
weekday日期部分產生的數取決于set datefirst設定的值,此命令設定星期中的第一天。
date
是返回DateTime或SmallDateTime值或日期格式字符串的表達式。
返回值類型:
int
解釋:
Day、Month和Year函數分別等價于DatePart(dd, date)、DatePart(mm, date)和DatePart(yy, date)
示例:
GetDate函數返回當前日期,然而,比較時并不總是需要完整的日期信息,通常只是對日期的一部分進行比較。
select DatePart(mm, GetDate()) as 'Month Num'
go
獲得10