加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

sql 时间循环

(2013-03-20 16:13:16)
标签:

sql

时间

循环

存储过程

分类: 数据库知识

 某些业务,需要计算某一段时间内的统计值,列如查询2013年一整年,每月的产值状况;如果,某个月都进行一次调用存储过程或者sql,那毕竟太费事;因此,我们可以在存储过程中,对时间进行循环,如此,就方便许多;在此之前,最好先了解一些sql的时间函数:

    通过存储过程,实现时间循环统计

  declare @startime varchar(30),---开始时间
   declare @endtime varchar(30)---结束时间

   declare @temp_time varchar(30)--暂存改变后的时间

   declare @count int --循环控制值
   declare @countsum int--起始时间之间的时间差(以天为单位)
   set @count=1
   set @countsum=datediff(day,@startime,@endtime)
   while @count<<A href="mailto:=@countsum">=@countsum

      begin

         ............进行业务处理

       set @temp_time=dateadd(day,1,@temp_time)
       set @count=@count+1

      end

一些sql的时间函数

一、sql server日期时间函数
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />Sql Server中的日期与时间函数 
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
1 当前系统日期、时间 
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />    
select getdate()  
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
2dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />   例如:向日期加上2天 
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />   
select dateadd(day,2,'2004-10-15' --返回:2004-10-17 00:00:00.000 
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />

http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
3datediff 返回跨两个指定日期的日期和时间边界数。
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />   
select datediff(day,'2004-09-01','2004-09-18'  --返回:17
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />

http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
4datepart 返回代表指定日期的指定日期部分的整数。
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />  
select DATEPART(month'2004-10-15' --返回 10
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />

http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
5datename 返回代表指定日期的指定日期部分的字符串
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />   
select datename(weekday, '2004-10-15' --返回:星期五
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />

http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
6day(), month(),year() --可以与datepart对照一下
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />

http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
select 当前日期=convert(varchar(10),getdate(),120
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />,当前时间
=convert(varchar(8),getdate(),114
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
select datename(dw,'2004-10-15'
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
select 本年第多少周=datename(week,'2004-10-15')
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />      ,今天是周几
=datename(weekday,'2004-10-15')

二、日期格式转换
    select CONVERT(varchargetdate(), 120 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
2004-09-12 11:06:08 
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select replace(replace(replace(CONVERT(varchargetdate(), 120 ),'-',''),' ',''),':','')
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
20040912110608
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 111 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
2004/09/12
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 112 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
20040912
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 102 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
2004.09.12
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 其它我不常用的日期格式转换方法:
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 101 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
09/12/2004
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 103 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
12/09/2004
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 104 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
12.09.2004
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 105 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
12-09-2004
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 106 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
12 09 2004
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 107 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
09 122004
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 108 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
11:06:08
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 109 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
09 12 2004 1
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 110 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
09-12-2004
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 113 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
12 09 2004 1
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" />
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
select CONVERT(varchar(12getdate(), 114 )
http://www.cnblogs.com/Images/OutliningIndicators/None.gif时间循环" TITLE="sql 时间循环" /> 
11:06:08.177

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有