日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 數據庫 > Sqlserver > 深入透析SQL中的日期函數與時間函數

深入透析SQL中的日期函數與時間函數

來源:程序員人生   發布時間:2014-01-17 22:59:55 閱讀次數:3847次
提到SQL中的日期函數與時間函數就不得不說出以下兩個概念:確定性函數與非確定性函數。

確定性函數:即獲得的值是在一組既定的值中,或者是可以料想到的值。
非確定性函數:即無法準確獲知其結果。

下面將日期函數與時間函數按上面提到的這兩種類型進行分類說明:

1. 確定性函數:
[1] DateAdd()
作用:在指定的日期加上一段時間的基礎上,返回新的DateTime

語法:
DateAdd(datepart, number, date)

參數:
datepart

是規定應向日期的哪一部分返回新值的參數。下表列出了 Microsoft® SQL Server™ 識別的日期部分和縮寫。


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

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产精品久久久久桃色tv | 久久精品国产一区二区三区 | 日韩欧美亚洲国产精品字幕久久久 | 色姑娘桃花网 | 国产精品久久久久久久久久免费看 | 国产高清无密码一区二区三区 | 国产日韩一区二区三区 | 国产一区二区三区四区www. | 99国产精品国产精品久久 | 精品一二三区 | 黄色在线观看视频网站 | 日韩欧美三级 | 亚洲成人tv| 不卡二区 | 久久电影国产免费久久电影 | 成人午夜啪啪好大 | 欧美成人免费一级人片100 | 亚洲精品视频一区二区三区 | 男女涩涩网站 | 国产成人av一区二区三区 | 亚洲一区二区三区在线看 | 最新精品在线 | a在线免费观看 | 国产精品久久久久一级毛片 | 精品国产一二三区 | 欧美成人看片黄a免费看 | 欧美日韩在线不卡 | 99精品全国免费观看视频软件 | 久久久久免费视频 | 成人精品国产一区二区4080 | 成人精品视频99在线观看免费 | 国产又色又爽又黄又免费 | 国产亚洲欧洲 | 黄色大片网站 | 99视频在线播放 | 国产精品正在播放 | 久久精品国产亚洲 | 久久国产精品免费一区二区三区 | 91精品国产一区二区三区 | 色婷婷综合久久久久中文一区二区 | 欧美日韩国产一区二区三区 |