DATEADD
當(dāng)前系統(tǒng)日期、時(shí)間 2. dateadd 在向指定日期加上一段時(shí)間的基礎(chǔ)上,返回新的 datetime 值 3. datediff 返回跨兩個(gè)指定日期的日期和時(shí)間邊界數(shù)。 4. datepart 返回代表指定日期的指定日期部分的整數(shù)。 5. datename 返回代表指定日期的指定日期部分的字符串 6. day(), month(),year() --可以與datepart對(duì)照一下 select 當(dāng)前日期=convert(varchar(10),getdate(),120) select datename(dw,‘2004-10-15‘) select 本年第多少周=datename(week,‘2004-10-15‘)
參數(shù) interval的設(shè)定值如下:
曾經(jīng)遇到這樣的情況,在數(shù)據(jù)庫(kù)的Meeting表中有PublishTime (DateTime,8)字段,用來(lái)存儲(chǔ)一個(gè)開會(huì)時(shí)間,在存入時(shí)由于要指明開會(huì)具體時(shí)間,故格式為yyyy-mm-dd hh:mm:ss,而我們查詢時(shí)是通過(guò)yyyy-mm-dd來(lái)進(jìn)行的,即查詢某一天的所有會(huì)議信息,這樣如果通過(guò)select * from Meeting where PublishTime=@PublishTime (參數(shù)@PublishTime為yyyy-mm-dd格式)語(yǔ)句進(jìn)行查詢將無(wú)法得到正確結(jié)果,比如我們要查詢2004年12月1日的會(huì)議信息,在輸入2004-12-01時(shí)就不能得到查詢結(jié)果,而這種查詢又不能要求輸入具體的hh:mm:ss. 此時(shí)我們需要使用convert函數(shù),它可以將一種數(shù)據(jù)類型的表達(dá)式轉(zhuǎn)換為另一種數(shù)據(jù)類型的表達(dá)式.此處我們先將數(shù)據(jù)庫(kù)內(nèi)的datetime類型轉(zhuǎn)換為char類型,由于輸入的參數(shù)是10位的,所以寫成
select * from Meeting where convert(varchar(10),PublishTime,121))=@PublishTime,這樣在查詢時(shí)數(shù)據(jù)庫(kù)得到參數(shù)后先自動(dòng)將數(shù)據(jù)庫(kù)內(nèi)的信息轉(zhuǎn)換為yyyy-mm-dd格式的10位字符,只要與參數(shù)相同即可返回查詢結(jié)果.而convert中的121是指將datetime類型轉(zhuǎn)換為char類型時(shí)獲得包括世紀(jì)位數(shù)的4位年份。
或者用CONVERT(DATETIME, PublishTime, 112)
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1591488 |
|
來(lái)自: 昵稱2807 > 《數(shù)據(jù)庫(kù)》