在開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用中,經(jīng)常會(huì)遇到處理時(shí)間的問(wèn)題,如查詢指定時(shí)間的記錄等。下面就這些常見(jiàn)的問(wèn)題,結(jié)合自己的一些經(jīng)驗(yàn),和大家探討一下這類問(wèn)題。 首先介紹一下,SQL Server里處理時(shí)間的幾個(gè)主要函數(shù)的用法:
getdate()函數(shù):取得系統(tǒng)當(dāng)前的日期和時(shí)間。返回值為datetime類型的。 用法:getdate() 例子: select getdate() as dte,dateadd(day,-1,getdate()) as nowdat 輸出結(jié)果: dte nowdat --------------------------- --------------------------- 1999-11-21 19:13:10.083 1999-11-20 19:13:10.083
(1 row(s) affected)
datepart()函數(shù):以整數(shù)的形式返回時(shí)間的指定部分。 用法:datepart(datepart,date) 參數(shù)說(shuō)明:datepart時(shí)要返回的時(shí)間的部分,常用取值year、month、day、hour、minute。 date是所指定的時(shí)間。 例子: SELECT DATEPART(month, GETDATE()) AS 'Month Number' 輸出結(jié)果: Month Number ------------ 11
(1 row(s) affected)
dateadd()函數(shù):通過(guò)給指定的時(shí)間的指定部分加上一個(gè)整數(shù)值以返回一個(gè)新時(shí)間值。 用法:dateadd(datepart,number,date) 參數(shù)說(shuō)明:datepart(同上) date(同上) number要增加的值,整型,可正可負(fù),正值返回date之后的時(shí)間值,負(fù)值返回date 之前的時(shí)間值 例子: select getdate() as today select dateadd(day,-1,getdate()) select dateadd(day,1,getdate()) 輸出: today --------------------------- 1999-11-21 19:42:41.410
(1 row(s) affected)
yesterday --------------------------- 1999-11-20 19:42:41.410
(1 row(s) affected)
tomorrow --------------------------- 1999-11-22 19:42:41.410
(1 row(s) affected)
datediff()函數(shù):返回兩個(gè)時(shí)間以指定時(shí)間部分來(lái)計(jì)算的差值。返回整數(shù)值。如1991-6-12和1991-6-21之間以天 來(lái)算相差9天,1998-6-12和1999-6-23按年算相差1年,1999-12-1和1999-3-12按月算相差9個(gè)月 用法:datediff(darepart,date1,date2) 參數(shù)說(shuō)明:datepart(同上) date1、date2(同上date) 例子: select datediff(month,'1991-6-12','1992-6-21') as a 輸出: a ----------- 12
(1 row(s) affected)
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!