1. 当前系统日期、时间
1 B1 t1 O2 o( U1 o' i+ m% T& H select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
& k% ?* g+ |$ I+ B$ B1 J% H 例如:向日期加上2天 $ A) h( a: h0 _/ h
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000
3 I+ g0 _9 q( K1 R5 Z3. datediff 返回跨两个指定日期的日期和时间边界数。
4 Q7 ^3 n5 W2 s' j% b select datediff(day,'2004-09-01','2004-09-18') --返回:174 c9 z/ }. {3 l* {
4. datepart 返回代表指定日期的指定日期部分的整数。" t9 ~: _4 A# t! l1 q
SELECT DATEPART(month, '2004-10-15') --返回 10+ x" X2 N- }3 j( t' ~) ?
5. datename 返回代表指定日期的指定日期部分的字符串
2 D3 V( d8 O# y/ f) L SELECT datename(weekday, '2004-10-15') --返回:星期五3 ]4 a0 Q! l, n K' L
6. day(), month(),year() --可以与datepart对照一下
' y( D0 B7 i9 d( I; T, L# v8 hselect 当前日期=convert(varchar(10),getdate(),120)
+ |, W3 D) e) [* O,当前时间=convert(varchar(8),getdate(),114) 5 a. E' N% ~, z0 x1 ?' ?. @
select datename(dw,'2004-10-15') 1 O3 E7 A; _( U7 U6 W; l* g
select 本年第多少周=datename(week,'2004-10-15')8 C( q& K" b1 ^$ p3 S) J! V
,今天是周几=datename(weekday,'2004-10-15')7 J4 {0 g" @, ?# k
0 o6 J2 C" A& M. x- e
函数
|
参数/功能
|
GetDate( )
|
返回系统目前的日期与时间
|
DateDiff (interval,date1,date2)
|
以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1
|
DateAdd (interval,number,date)
|
以interval指定的方式,加上number之后的日期
|
DatePart (interval,date)
|
返回日期date中,interval指定部分所对应的整数值
|
DateName (interval,date)
|
返回日期date中,interval指定部分所对应的字符串名称
|
参数 interval的设定值如下:
6 T2 s& Z& Z! O( U2 B# ^4 R9 e) K
值
|
缩 写(Sql Server)
|
(Access 和 ASP)
|
说明
|
Year
|
Yy
|
yyyy
|
年 1753 ~ 9999
|
Quarter
|
Qq
|
q
|
季 1 ~ 4
|
Month
|
Mm
|
m
|
月1 ~ 12
|
Day of year
|
Dy
|
y
|
一年的日数,一年中的第几日 1-366
|
Day
|
Dd
|
d
|
日,1-31
|
Weekday
|
Dw
|
w
|
一周的日数,一周中的第几日 1-7
|
Week
|
Wk
|
ww
|
周,一年中的第几周 0 ~ 51
|
Hour
|
Hh
|
h
|
时0 ~ 23
|
Minute
|
Mi
|
n
|
分钟0 ~ 59
|
Second
|
Ss
|
s
|
秒 0 ~ 59
|
Millisecond
|
Ms
|
-
|
毫秒 0 ~ 999
|
. w7 A6 K, d7 ?* i s' g% haccess 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似* S, ]6 }% {5 F* X
举例:. _( X* m; k1 e& Q
1.GetDate() 用于sql server :select GetDate()
$ s2 j! C( K2 f% ]5 L3 Y9 I% S' f7 C; C5 i$ M& m3 G3 M- |/ u; I
2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒7 T3 {* Z3 N: S) e, E" m$ O$ d, G
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天- @8 A% H+ R5 k. i9 e
1 D# y8 c" L: V3 ]5 U1 A' \
3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1,周六为7)
( f- b* [. C! y/ [& a1 R SDatePart('d','2005-7-25 22:56:32')返回值为 25即25号) U7 H- ~. x. Q; q7 x* E# g4 {
DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天% |& v3 R% C( |3 n; s/ l* ~
DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年
select GPRSId from TB_GPRS
where DATEDIFF ( mi , lineTime , getdate() )>10 系统时间比系统时间小于10分钟
DATEDIFF ( datepart , startdate , enddate )
参数
datepart
是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft? SQL Server? 识别的日期部分和缩写。
日期部分 缩写
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
例 select * from tab where datediff(ss,日期,getdate())=10
减1年:dateadd(yy,-1,'2005-09-02 08:30:00')
减1月:dateadd(mm,-1,'2005-09-02 08:30:00')
减1天:dateadd(dd,-1,'2005-09-02 08:30:00')
减1小时:dateadd(hh,-1,'2005-09-02 08:30:00')
减1分钟:dateadd(mi,-1,'2005-09-02 08:30:00')
本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1080894