sql生成一个日期表
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
sql生成一个日期表的更多相关文章
- SQL 生成一个日期范围
有时想按日或月生成一个序列,就像2014-1-1.2014-1-2.2014-1-3... 在sql server中可以写个函数来实现. /* 生成一个日期范围,如2014.01.2014.02... ...
- sql生成连续日期(年份、月份、日期)
此随笔主在分享日常可能用到的sql函数,用于生成连续日期(年份.月份.日期) 具体的看代码及效果吧! -- ============================================= ...
- 获取html 中的内容 将前台的数据获取到后台 用 jquery 生成一个 form表单 提交数据
使用js创建一个form表单 ,使用post上传到后台中 下面是代码.在获取html内容的时候使用了js节点来获取内容. parent:父节点.上一级的节点 siblings:兄弟节点.同一级别的节点 ...
- sql 生成开始日期到结束日期与开始日期的相差天数
SELECT CONVERT(VARCHAR(10), DATEADD(dd, number, '2015-10-25'), 120) AS dtDate FROM ...
- sql生成一个唯一标示
IDNEWID() 插入一条: insert into W_1(id,account,password,uname,telnumber,imei) values(NEWID(),’xiaohong’, ...
- SQL - 创建一个学生表,要求有主键约束和非空约束
CREATE TABLE [dbo].[Student] ( [ID] [int] NOT NULL, [Name] [nchar](10) NOT NULL, [Age] [int] NOT NUL ...
- MySQL 如何生成日期表
MySQL 如何生成日期表 在开发过程中,经常会遇到统计问题,通常交易信息都不是连续的,此时,统计出来的数据都是不连续的,所以提前生成一个时期表,当没有交易数据的时候填充0,就可以了,下面是生成日期表 ...
- PowerBI 应用时间智能(生成日期表)
简介 Power BI Desktop -是一款由微软发布的自助式商业智能工具,功能强大.易于使用.其中还可以通过微软云连多个数据源并且使用数据源来创建可视化表盘. 但是几乎所有的BI都需要展示如何随 ...
- Sql的分库分表,及优化
对Sql细节优化 在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考. 首先给大家介绍一下分库分表 分库分表 分库 垂直分库 业务 ...
随机推荐
- [C++] Fucntions
Statements A break statements terminate the nearest wile, do while, for or switch statement. A break ...
- UVALive - 6872 Restaurant Ratings 数位dp
题目链接: http://acm.hust.edu.cn/vjudge/problem/113727 Restaurant Ratings Time Limit: 3000MS 题意 给你一个长度为n ...
- LintCode-379.将数组重新排序以构造最小值
将数组重新排序以构造最小值 给定一个整数数组,请将其重新排序,以构造最小值. 注意事项 The result may be very large, so you need to return a st ...
- mysql(一) 关联查询的方式
mysql做关联查询时,一般使用join....on.....的语法. 但还有其它两种语法形式,三者的主要区别在于书写形式,其余方面并无太多差异. 如下三种形式: select * from trad ...
- 【bzoj1143】[CTSC2008]祭祀river Floyd+网络流最小割
题目描述 在遥远的东方,有一个神秘的民族,自称Y族.他们世代居住在水面上,奉龙王为神.每逢重大庆典, Y族都会在水面上举办盛大的祭祀活动.我们可以把Y族居住地水系看成一个由岔口和河道组成的网络.每条河 ...
- Python 源码剖析(一)【python对象】
处于研究python内存释放问题,在阅读部分python源码,顺便记录下所得.(基于<python源码剖析>(v2.4.1)与 python源码(v2.7.6)) 先列下总结: ...
- hadoop 把mapreduce任务从本地提交到hadoop集群上运行
MapReduce任务有三种运行方式: 1.windows(linux)本地调试运行,需要本地hadoop环境支持 2.本地编译成jar包,手动发送到hadoop集群上用hadoop jar或者yar ...
- CentOS 双网卡绑定实现平衡负载
绑定两块网卡主要为了解决网卡故障.负载均衡等问题. 1.在vm加一块网卡,登录后检查网卡是否识别. 分别用ip addr和nmcli查看网卡的情况 [root@bigdata-senior01 ~]# ...
- 具体数学二项式至生成函数章-----致敬Kunth
关于标题取得这么奇怪.因为在具体数学中.这两章是分开叙述的.并且分别叙述得淋漓尽致! 我只参悟其中关于生成函数的一小部分内容(暂时于我够用了.) 提二项式系数之前不得不提组合数.以往在高中用的是符号C ...
- 【题解】APIO2018 Duathlon 铁人两项
首先对于给出的图建立圆方树,然后我们分类讨论每一个点作为中间的中转站出现的情况有多少种,累积到 \(ans\) 中. 对于圆点:在任意两个子树内分别选出一个节点都是合法的. 对于方点:连接向方点的点均 ...