多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 數(shù)據(jù)庫(kù) > Sqlserver > 深入透析SQL中的日期函數(shù)與時(shí)間函數(shù)

深入透析SQL中的日期函數(shù)與時(shí)間函數(shù)

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-01-17 22:59:55 閱讀次數(shù):3836次
提到SQL中的日期函數(shù)與時(shí)間函數(shù)就不得不說(shuō)出以下兩個(gè)概念:確定性函數(shù)與非確定性函數(shù)。

確定性函數(shù):即獲得的值是在一組既定的值中,或者是可以料想到的值。
非確定性函數(shù):即無(wú)法準(zhǔn)確獲知其結(jié)果。

下面將日期函數(shù)與時(shí)間函數(shù)按上面提到的這兩種類型進(jìn)行分類說(shuō)明:

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

語(yǔ)法:
DateAdd(datepart, number, date)

參數(shù):
datepart

是規(guī)定應(yīng)向日期的哪一部分返回新值的參數(shù)。下表列出了 Microsoft® SQL Server™ 識(shí)別的日期部分和縮寫。


number

是用來(lái)增加datepart的值,如果指定的不是一個(gè)整數(shù),則將舍棄此值的小數(shù)部分。
例如,如果為datepart指定day,為number指定1.75,則day將增加1。

date
是返回DateTime類型或SmallDateTime值或日期格式字符串的表達(dá)式。

返回值類型:
返回DateTime,如果date參數(shù)是SmallDateTime,返回SmallDateTime。

示例:
此示例打印出當(dāng)前時(shí)間加上21天,
DateAdd(day, 21, GetDate())
number傳負(fù)數(shù),大于本月剩余天數(shù)的值都是可以的,函數(shù)會(huì)自己演算。

[2] DateDiff()
作用:
返回跨兩個(gè)指定日期的日期和時(shí)間邊界數(shù)。

語(yǔ)法:
DateDiff(datepart, startDate, endDate)

參數(shù):
datepart
DateAdd()中以對(duì)此參數(shù)進(jìn)行了介紹,這里不再贅述,后面的datepart參數(shù)也同。

startDate
是計(jì)算的開始日期,startDate是返回DateTime或SmallDateTime值或日期格式字符串的表達(dá)式。
因?yàn)镾mallDateTime只精確到分鐘,所以當(dāng)用SmallDateTime時(shí),秒和毫秒總是0。

endDate
是計(jì)算的總是日期。endDate是返回DateTime或SmallDateTime值或日期格式字符串的表達(dá)式。

返回值類型:
int

解釋:
startDate是從endDate減去。如果startDate比endDate玩,返回負(fù)值。
當(dāng)超出整數(shù)值范圍,DateDiff產(chǎn)生錯(cuò)誤。
對(duì)于毫秒,最大數(shù)是24天20小時(shí)31分鐘零23.647秒。
對(duì)于秒,最大數(shù)是68年。
計(jì)算跨分鐘、秒和毫秒這些邊界的方法,使得DateDiff給出的結(jié)果在全部數(shù)據(jù)類型中是一致的。
結(jié)果是帶正負(fù)號(hào)的整數(shù)值,其等于跨第一個(gè)和第二個(gè)日期間的datepart邊界值。
例如,在1月4日(星期日)和1月11日(星期日)之間的星期數(shù)是1。

示例:
select DateDiff(day, '2009-10-24', GetDate())

[3] Day()
作用:
返回代表指定日期的天的日期部分整數(shù)。

語(yǔ)法:
Day(date)

參數(shù):
date
類型為DateTime或SmallDateTime的表達(dá)式。

返回值類型:
int

解釋:
此函數(shù)等價(jià)于DatePart(dd, date)

示例:
下面的示例從2009-10-4中返回day部分
select Day('2009-10-4')
會(huì)得到4,即日期部分

[4] Month()
作用:
返回代表指定日期月份的整數(shù)。

語(yǔ)法:
Month(date)

參數(shù):
date
返回DateTime或SmallDateTime值或日期格式字符串的表達(dá)式。

返回值類型:
int

解釋:
此函數(shù)等價(jià)于等價(jià)于DatePart(mm, date)

示例:
下面的示例從2009-10-4中返回month部分
select Month('2009-10-4')
會(huì)獲得10,即月份部分

[5] Year()
作用:
返回表示指定日期中的年份的整數(shù)。

語(yǔ)法:
Year(date)

參數(shù):
date
DateTime或SmallDateTime類型的表達(dá)式。

返回值類型:
int

解釋:
此函數(shù)等價(jià)于DatePart(yy, date)

示例:
下例從日期2009-10-4中返回年分?jǐn)?shù)
select Year('2009-10-4')
獲得2009,即年份部分

2. 非確定性函數(shù):
[1] DateName()
作用:
返回代表指定日期的制定日期部分的字符串。

語(yǔ)法:
DateName(datepart, date)

參數(shù):
datepart
同DateAdd()

返回值類型:
nvarchar

解釋:
SQL Server自動(dòng)在字符和DateTime值間按需求進(jìn)行交換,例如,當(dāng)字符與DateTime值進(jìn)行比較時(shí)。

示例:
此示例從GetDate返回的日期中提取月份名,
select DateName(month, GetDate())
獲得October

[2] GetDate()
作用:
按DateTime值的 Microsoft® SQL Server™ 標(biāo)準(zhǔn)內(nèi)部格式返回當(dāng)前系統(tǒng)日期和時(shí)間。

語(yǔ)法:
GetDate()

返回值類型:
DateTime

解釋:
日期函數(shù)可以用在select語(yǔ)句的選擇列表或用在查詢的where子句中,
在設(shè)計(jì)報(bào)表時(shí),GetDate函數(shù)可用于在每次生成報(bào)表時(shí)打印當(dāng)前日期和時(shí)間。
GetDate對(duì)于跟蹤活動(dòng)也很有用,諸如在記錄事務(wù)在某一賬戶上發(fā)生的時(shí)間。

示例:
A. 用GetDate返回當(dāng)前日期和日期和時(shí)間
下面的示例得出當(dāng)前系統(tǒng)日期和時(shí)間:
select GetDate()

B. 在create table語(yǔ)句中使用GetDate
下面的示例創(chuàng)建Employees表并用GetDate給出員工雇傭時(shí)間的默認(rèn)值。
use Test
go

create table Employees (
      id int identity(1, 1),
      empName varchar(40) not null,
      createDtm DateTime default GetDate()
)
go

[3] GetUtcDate()
作用:
返回表示當(dāng)前UTC時(shí)間(世界時(shí)間坐標(biāo)或稱格林威治標(biāo)準(zhǔn)時(shí)間)的DateTime值。
當(dāng)前的UTC時(shí)間得自當(dāng)前的本地時(shí)間和運(yùn)行SQL Server的計(jì)算機(jī)操作系統(tǒng)中的設(shè)置。

語(yǔ)法:
GetUtcDate()

返回值類型:
DateTime

解釋:
GetUtcDate是非確定性函數(shù)。引用該列的視圖和表達(dá)式無(wú)法進(jìn)行索引。
GetUtcDate無(wú)法在用戶定義的函數(shù)內(nèi)使用。

最后的這個(gè)比較特別,它是DatePart()
除了用作DatePart(dw, date)外都具有確定性。
dw是工作日的日期部分。

作用:
返回代表指定日期的指定日期部分的函數(shù)。

語(yǔ)法:
DatePart(datepart, date)

參數(shù):
datepart
這里多了個(gè)weekday(dw),返回對(duì)應(yīng)于星期中某天的數(shù),
例如,Sunday = 1,Saturday = 7。
weekday日期部分產(chǎn)生的數(shù)取決于set datefirst設(shè)定的值,此命令設(shè)定星期中的第一天。

date
是返回DateTime或SmallDateTime值或日期格式字符串的表達(dá)式。

返回值類型:
int

解釋:
Day、Month和Year函數(shù)分別等價(jià)于DatePart(dd, date)、DatePart(mm, date)和DatePart(yy, date)

示例:
GetDate函數(shù)返回當(dāng)前日期,然而,比較時(shí)并不總是需要完整的日期信息,通常只是對(duì)日期的一部分進(jìn)行比較。
select DatePart(mm, GetDate()) as 'Month Num'
go
獲得10

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 中文字幕 亚洲 一区二区三区 | 亚洲国产精品久久久天堂 | 亚洲精品自在线拍 | h视频在线播放 | 国产一区二区三区免费 | 国产一级淫片a免费播放口之 | 伊人久久中文字幕久久cm | 欧美日韩国产在线观看 | 一级毛片国产真人永久在线 | 天天综合色一区二区三区 | 精品视频亚洲 | 网站毛片 | 亚洲色图色 | 欧美午夜色视频国产精品 | 男女69视频 | 精品国产一区二区三区2021 | 久久久久在线观看 | 国产亚洲精品久久久久久 | 国产亚洲欧美日韩在线看片 | 成人欧美一级毛片免费观看 | 亚洲美女视频网站 | 麻豆影视在线最新免费观看 | 欧美高清一级啪啪毛片 | 日本中文字幕视频在线看 | 亚洲区小说区激情区图片区 | 五月丁香六月综合缴清无码 | 免费色网址| 免费爱做网站在线看 | 99久久精品毛片免费播放 | 精品一区二区三区免费视频 | 亚洲国产激情一区二区三区 | 国产不卡精品一区二区三区 | 九九精品免视看国产成人 | 免费国产一区二区在免费观看 | 日韩免费一区二区三区在线 | 久久小视频 | 色就色欧美综合偷拍区a | 成人做视频免费 | 日韩高清一区二区三区五区七区 | 伊人久久婷婷 | 欧美成人午夜在线全部免费 |