首先介绍一下,
SQL Server里处理时间的几个主要函数的用法:
51Testing软件测试网-Hf
QvE%LeC
#|Rl]3~R&L0getdate()函数:取得系统当前的日期和时间。返回值为datetime类型的。
V
OogmI)W0用法:getdate()51Testing软件测试网tXVWD|%z
例子:51Testing软件测试网3yv;?1f[ a BJ
select getdate() as dte,dateadd(day,-1,getdate()) as nowdat
2LgI"\UF^ y9W'VV0输出结果:
E$O$xh-yZFp0dte nowdat51Testing软件测试网 p:BT ^$q
--------------------------- ---------------------------
9l7ZAd|"Y5N_4?Dq01999-11-21 19:13:10.083 1999-11-20 19:13:10.08351Testing软件测试网(V
tZ'k_lYn H)T9Q
+B6`+?eJ/o8tx/y!C0(1 row(s) affected)
O's'{1S
nXjO051Testing软件测试网#w2r5|
B c+s
datepart()函数:以整数的形式返回时间的指定部分。51Testing软件测试网pi+Z2Wn kF9Z
用法:datepart(datepart,date)
oxs&P
z,?(O8~(L1t0参数说明:datepart时要返回的时间的部分,常用取值year、month、day、hour、minute。
T.@|$Plqk1V0date是所指定的时间。
*wf/?!y4[vE{'[1V/Z0例子:51Testing软件测试网n@2sv2cR8QO,K
SELECT DATEPART(month, GETDATE()) AS Month Number
`H*C/w1\Y5smZ's&[0输出结果:
t
B(i+R2VQB0Month Number51Testing软件测试网
nQ7leTu8ukxi
------------
HQMh a4D-~D7`"f!rR01151Testing软件测试网[$w0A4cvX5B-HW
/x8Uc'\4a] `0(1 row(s) affected)
2K4J^[rt;K,{051Testing软件测试网l_1I2Nx(c)Q3Zdateadd()函数:通过给指定的时间的指定部分加上一个整数值以返回一个新时间值。
,tV2yx
T l0用法:dateadd(datepart,number,date)51Testing软件测试网npTf'yf,D,]
参数说明:datepart(同上)51Testing软件测试网OU N\Z:CT
date(同上)51Testing软件测试网*A(]vj+UW{
number要增加的值,整型,可正可负,正值返回date之后的时间值,负值返回date51Testing软件测试网7a0Q8F r1d6}T
之前的时间值
:` T t1N&FE Y Q0例子:
!~K1wX0T"E3q2s&Q(F0select getdate() as today
^zIv6Sl)_BO0select dateadd(day,-1,getdate())
K/l7h/C{ _ t2W!?j0select dateadd(day,1,getdate())
sm,V-Xv"A/K:e0输出:
9gu^Z0K:A,_P0today
'WElZu4hbQcw9b0---------------------------
N"_B*lr
tJ|/oN s6K01999-11-21 19:42:41.410
T NoPW4_3FN051Testing软件测试网+U'^Z6\CI(1 row(s) affected)
8_Po
V0WTc&b&~@0)p8W f!jN;Ir0E0yesterday51Testing软件测试网;K0L0C:B'N-L:M
---------------------------51Testing软件测试网'b2n*HZsb~ \
1999-11-20 19:42:41.41051Testing软件测试网plHNJ~
iV9r`l4VQ"T0(1 row(s) affected)51Testing软件测试网 y4RWV6UHMg2H
B `\z;h0k@8t"G0tomorrow
b*d`
]-E_t[#j1[0---------------------------
-Ytq%H:WJ
j3^9R01999-11-22 19:42:41.410
w)L6[)d'P5qX'[T1D051Testing软件测试网.^@3c9I6O,D/~6J(1 row(s) affected)51Testing软件测试网KS(|+VU.o6^ Nc
Epua3C ca+ATK0datediff()函数:返回两个时间以指定时间部分来计算的差值。返回整数值。如1991-6-12和1991-6-21之间以天51Testing软件测试网9y~ s0n1@9A
来算相差9天,1998-6-12和1999-6-23按年算相差1年,1999-12-1和1999-3-12按月算相差9个月51Testing软件测试网L qKh2ohO
用法:datediff(darepart,date1,date2)51Testing软件测试网i+vLej6h K3Q.@
参数说明:datepart(同上)
+|d$pQ"Ou0date1、date2(同上date)
A5u,lI
DB#_+j0例子:
^\pTR+O!B-C0elect datediff(month,1991-6-12,1992-6-21) as a
/W7Rf
Ao2rS~0输出:51Testing软件测试网!u&YAl1_8aQ9l Mn2X I
A
a
aL7I3o#v"V@7\#@"c0-----------51Testing软件测试网kE9RsY
d$w
12
8M$?*V4hv051Testing软件测试网7b5L;sX8p8WC(1 row(s) affected)
5ZR2HRv%?{.cG3^0