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