Posted on 2008-04-29 09:25
itspy 閱讀(567)
評(píng)論(2) 編輯 收藏 所屬分類:
小巧實(shí)例 、
其它技術(shù)
來源:http://www.xici.net/b3761/d43293.htm
在開發(fā)數(shù)據(jù)庫(kù)應(yīng)用中,經(jīng)常會(huì)遇到處理時(shí)間的問題,如查詢指定時(shí)間的記錄等。下面就這些常見的問題,結(jié)合自己的一些經(jīng)驗(yà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ù)說明: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ù):通過給指定的時(shí)間的指定部分加上一個(gè)整數(shù)值以返回一個(gè)新時(shí)間值。
用法:dateadd(datepart,number,date)
參數(shù)說明: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í)間部分來計(jì)算的差值。返回整數(shù)值。如1991-6-12和1991-6-21之間以天
來算相差9天,1998-6-12和1999-6-23按年算相差1年,1999-12-1和1999-3-12按月算相差9個(gè)月
用法:datediff(darepart,date1,date2)
參數(shù)說明:datepart(同上)
date1、date2(同上date)
例子:
select datediff(month,'1991-6-12','1992-6-21') as a
輸出:
a
-----------
12
(1 row(s) affected)