SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:  lidongbo
-- Create date: <Create Date,,>
-- Description: 生成日期表,为营业统计使用
-- =============================================
CREATE PROCEDURE CreateDateTable
 -- Add the parameters for the stored procedure here
 @p_startTime datetime,
 @p_endTime datetime
AS
BEGIN
 /************生成时间临时表********/
create table #etTtime_TempTable (
 [ID] [int] IDENTITY (1, 1) NOT NULL PRIMARY KEY,
        [日期列] DateTime,
[门店编号列] varchar(50)
)
declare @etKdd int,@etKmmStr nvarchar(13),@etKddStr nvarchar(13),@etKwwStr nvarchar(13),@etKqqStr nvarchar(13),@start_Time datetime,@end_Time datetime,@type_Time int,@mdbh varchar(50)
--set @start_Time='2010-01-01'/*设置起始时间*/
--set @end_Time='2100-12-31'/*设置终止时间*/
set @start_Time=@p_startTime/*设置起始时间*/
set @end_Time=@p_endTime/*设置终止时间*/
set @type_Time=1   /*生成类型 1为天 2为周 3为月 4为季度 5为年*/
set @mdbh='zlwy4000480006'
WHILE @start_Time<@end_Time /**/
begin
set @etKdd=datepart(dd,@start_Time)
set @etKddStr=cast(@etKdd as nvarchar(13))

set @etKdd=datepart(mm,@start_Time)
set @etKmmStr=cast(@etKdd as nvarchar(13))

set @etKdd=datepart(ww,@start_Time)
set @etKwwStr=cast(@etKdd as nvarchar(13))

set @etKdd=datepart(qq,@start_Time)
set @etKqqStr=cast(@etKdd as nvarchar(13))

if @type_Time=1
Begin
INSERT INTO #etTtime_TempTable (日期列,门店编号列) VALUES (cast(datepart(yy,@start_Time)as nvarchar(13))+'-'+@etKmmStr+'-'+@etKddStr,@mdbh)
SET @start_Time=DATEADD(dd,1,@start_Time)
End
if @type_Time=2
Begin
INSERT INTO #etTtime_TempTable (日期列,门店编号列) VALUES (cast(datepart(yy,@start_Time)as nvarchar(13))+'-'+@etKwwStr,@mdbh)
SET @start_Time=DATEADD(ww,1,@start_Time)
End
if @type_Time=3
Begin
INSERT INTO #etTtime_TempTable (日期列,门店编号列) VALUES (cast(datepart(yy,@start_Time)as nvarchar(13))+'-'+@etKmmStr,@mdbh)
SET @start_Time=DATEADD(mm,1,@start_Time)
End
if @type_Time=4
Begin
INSERT INTO #etTtime_TempTable (日期列,门店编号列) VALUES (cast(datepart(yy,@start_Time)as nvarchar(13))+'-'+@etKqqStr,@mdbh)
SET @start_Time=DATEADD(qq,1,@start_Time)
End
if @type_Time=5
Begin
INSERT INTO #etTtime_TempTable (日期列,门店编号列) VALUES (cast(datepart(yy,@start_Time)as nvarchar(13)),@mdbh)
SET @start_Time=DATEADD(yy,1,@start_Time) /*循环开始时间加1 直到等于设置的终止时间*/
End

Continue
End

/*查询临时表*/
--Select * From #etTtime_TempTable
--delete from datetable
insert into datetable select id, 日期列 from  #etTtime_TempTable
/*删除临时表*/
Drop Table #etTtime_TempTable
END
GO

最新文章

  1. 08.LoT.UI 前后台通用框架分解系列之——多样的Tag选择器
  2. ajax 选项卡
  3. c# List去重
  4. 【转】Crontab定时任务配置
  5. Cygwin使用方法
  6. 基于EventAggregator的事件发布及订阅
  7. SQL性能优化之一
  8. firefly服务器间通信演示
  9. Socket程序中的Error#10054错误
  10. 学习java随笔第五篇:流程控制
  11. SGU 154.Factorial
  12. 使用Japserreport填充报表数据(3)
  13. android 电平信号状态识别View平局
  14. 深度学习框架Caffe的编译安装
  15. java设计模式------工厂设计模式
  16. ionic3创建选项卡
  17. C#控制台或应用程序中两个多个Main()方法的设置
  18. 服务端API 工作经验(没有工作的是体会不到的)
  19. asp.net EF框架执行原生SQL语句
  20. 1、Zookeeper安装及问题与集群

热门文章

  1. 从hive导入到oracle(Hcatalog)
  2. 使用HTML5制作loading图
  3. 采用c#实现功能1
  4. 《梦断代码Dreaming In Code》阅读笔记(一)
  5. 常用排序算法--java版
  6. LintCode-374.螺旋矩阵
  7. python学习第一天-语法学习
  8. 软工网络15团队作业4——Alpha阶段敏捷冲刺-3
  9. 工具函数:cookie的添加、获取、删除
  10. BER-TLV数据结构