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