1.看到一个帖子,里面日期操作函数挺多,方法技巧也挺好,学习了。
declare @s date
select @s='2012-01-01' --> 定义开始日期
select cast(datepart(yy,dateadd(dd,number,@s)) as varchar(4))+'年'
+cast(datepart(mm,dateadd(dd,number,@s)) as varchar(4))+'月'
+cast(datepart(dd,dateadd(dd,number,@s)) as varchar(4))+'日' '字符串日期格式',
case datepart(dw,dateadd(dd,number,@s))
when 1 then '星期日'
when 2 then '星期一'
when 3 then '星期二'
when 4 then '星期三'
when 5 then '星期四'
when 6 then '星期五'
when 7 then '星期六' end '时间日期格式',
convert(varchar(100),dateadd(dd,number,@s),23) '备注'
from master.dbo.spt_values
where [type]='P' and
dateadd(dd,number,@s)<dateadd(year,1,@s)
定义和用法
DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
语法
DATEPART(datepart,date)
date 参数是合法的日期表达式。datepart 参数可以是下列的值:

datepart | 缩写 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小时 | hh |
分钟 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
纳秒 | ns |
定义和用法
DATEADD() 函数在日期中添加或减去指定的时间间隔。
语法
DATEADD(datepart,number,date)
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
datepart 参数可以是下列的值:
同上图