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) 说明
--Year Yy 年 1753 ~ 9999
--Quarter Qq 季 1 ~ 4
--Month Mm 月1 ~ 12
--Day of year Dy 一年的日数,一年中的第几日 1-366
--Day Dd 日,1-31
--Weekday Dw 一周的日数,一周中的第几日 1-7
--Week Wk 周,一年中的第几周 0 ~ 51
--Hour Hh 时0 ~ 23
--Minute Mi 分钟0 ~ 59
--Second Ss 秒 0 ~ 59
--Millisecond Ms 毫秒 0 ~ 999

--举例:
--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 * FROM 表 where 开始时间>'2005-02-01' and 结束时间<='2005-06-05'order by id desc


--查询最近30内的记录数据:
SELECT * FROM 表 WHERE DATEDIFF(Dd,last_date,GETDATE())<=30 ORDER BY id DESC

--查询最近一周内的点击率大于100的记录数据:
SELECT * FROM t_business_product WHERE hit_count > 100 AND DATEDIFF(Dw,last_date,GETDATE()) <= 7 ORDER BY id DESC

--查询某一年(如2006年)的记录数据:
SELECT * FROM 表 WHERE DATEPART(yy,last_date)=2006 ORDER BY id DESC
--或
SELECT * FROM 表 WHERE DATEPART(YEAR,last_date)=2006 ORDER BY id DESC

--如查询系统当前年份插入的一年内的数据:
SELECT * FROM 表 WHERE DATEPART(yy,GETDATE()) = DATEPART(yy,GETDATE()) ORDER BY id DESC

--取系统日期 并将 日期 分开
SELECT 当前日期 = CONVERT(VARCHAR(10),DATEADD(DAY,-1,GETDATE()),120),当前时间 = CONVERT(VARCHAR(8),GETDATE(),114)
---------------------取 年月日
--year(),month(),date()