elvis0123

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
 

现在将一些常用的SQL日期操作函数记下
/**//**//**//* datepart()
函数的使用                          
* datepart()
函数可以方便的取到时期中的各个部分
*
如日期:2006-07--02 181536.513
* yy:
取年           2006
* mm:
取月           7
* dd:
取月中的天     2
* dy:
取年中的天     183
* wk:
取年中的周     27
* dw:
取周中的天     1
* qq:
取年中的季度   3
* hh:
取小时        18
* mi:
取分钟        15
* ss:
取秒          36
*
以下简单的语句可以演示所取到的结果
*/
select getdate()
select datepart(mm,getdate())
select datepart(yy,getDate())
select datepart(dd,getdate())
select datepart(dy,getdate())
select datepart(wk,getdate())
select datepart(dw,getdate())
select datepart(qq,getdate())
select datepart(hh,getdate())
select datepart(mi,getdate())
select datepart(ss,getdate())

select datediff(dd,getdate(),'12/25/2006')--
计算从今天到12/25/2006还有多少天
select datediff(mm,getdate(),'12/25/2006')--
计算从今天到12/25/2006还有多少个月
select datename(mm,getdate())             --
以字符串而不是数字的形式得到今天的月份(07

select dateadd(dd,30,getdate())           --
在目前的日期日期上加30
select dateadd(mm,3,getdate())            --
在目前的日期日期上加3个月
select dateadd(yy,1,getdate())            --
在目前的日期日期上加1

select DATEADD(qq,DATEDIFF(qq,0,getdate()), 0)--
得到本季度第一天
select dateadd(mm,-3,DATEADD(qq,  DATEDIFF(qq,0,getdate()),  0)) --
得到上主、季度第一天
--
另外使用getdate()函数返回的日期包括到毫秒级,有时我们只需要取出一部分如 2007-05-26
select convert(varchar(10),getdate(),120)--
结果2007-05-26
/**//*
说明 varchar(10)为截取长度为10个字符
getdate()
是需要处理的日期,也可以直接给日期字符串
如:2007-05-26 10:00:28.420
120:
getdate()的格式具体可参看以下列表
参数 结果  
100  05  8 2006  9:27PM
101  05/08/2006
102  2006.05.08
103  08/05/2006
104  08.05.2006
105  08-05-2006
106  08 05 2006
107  05 08, 2006
108  21:30:51
109  05  8 2006  9:31:11
110  05-08-2006
111  2006/05/08
112  20060508
113  08 05 2006 21:31:59
114  21:33:06:503
120  2006-05-08 21:33:38


posted on 2009-04-21 16:37  elvis  阅读(242)  评论(0编辑  收藏  举报