sql server日期时间函数

时间:2021-12-02 16:21:51

From:http://www.cnblogs.com/linzheng/archive/2010/11/17/1880208.html

1.  当前系统日期、时间 
 

select getdate()  

2. dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值
   例如:向日期加上2天

select dateadd(day,2,'2004-10-15')  

   --返回:2004-10-17 00:00:00.000

3 datediff 返回跨两个指定日期的日期和时间边界数。

select datediff(day,'2004-09-01','2004-09-18')   

--返回:17

4. datepart 返回代表指定日期的指定日期部分的整数。

  SELECT DATEPART(month, '2004-10-15')  --返回 10


5. datename 返回代表指定日期的指定日期部分的字符串

SELECT datename(weekday, '2004-10-15')  --返回:星期五


6. day(), month(),year() --可以与datepart对照一下

select 当前日期=convert(varchar(10),getdate(),120) ,当前时间=convert(varchar(8),getdate(),114)
select datename(dw,'2004-10-15')
select 本年第多少周=datename(week,'2004-10-15')
,今天是周几=datename(weekday,'2004-10-15')

函数:

函数

参数/功能

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的设定值如下:

缩 写(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

access 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于Access和asp中,这些函数的用法也类似
举例:

1.GetDate() 用于sql server :select GetDate()
2.DateDiff('s,'2005-07-20','2005-7-25 22:56:32')返回值为 514592
DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5
3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1,周六为7)
 DatePart('d','2005-7-25 22:56:32')返回值为 25即25号)
 DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天
 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')

 ---------->>>