SQL常用日期处理函数

最近在在一电力系统,里面用到报表,经常需要对SQL日期进行操作。现在将一些常用的SQL日期操作函数记下

/**/ /* datepart()函数的使用                          
* datepart()函数可以方便的取到时期中的各个部分
*如日期:2006-07--02 18:15:36.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 

*/

你可能感兴趣的:(sql)