sql server日期时间函数

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')  

posted on 2010-11-17 21:38  linzheng  阅读(2363)  评论(0编辑  收藏  举报

导航