数据仓库中有时间表,存储时间信息,这个存储过程接收开始时间结束时间,写入时间具体信息。有高手用excel函数功能很快能产生INSERT语句不会啊,只能用这个。

参考知识

1 vSET ANSI_NULLS ON
2  GO
3
4  SET QUOTED_IDENTIFIER ON
5 GO
6
7 /*--------------------------------------------------------
8 *generate Date demention
9 *@startdate '01/01/2010'
10 *@enddate '12/30/2010'
11 ---------------------------------------------------------*/
12
13 CREATE PROCEDURE dbo.AddDateTime
14 @startdate datetime,
15 @enddate datetime
16 AS
17 declare @i int
18 set @i=1
19
20 while(DATEDIFF(DD,@startdate,@enddate)>=0)
21 begin
22
23 insert into [ReportServer].[dbo].[D_DATE](
24 [DATE_KEY], --primarykey
25 [DATE], --datetime
26 [FULL_DATE_DESCRIPTION], --detail date
27 [DAY_OF_WEEK], --day of week from 1 to 6
28 [CALENDAR_MONTH], --month of year from 1 to 12
29 [CALENDAR_YEAR], --year
30 [FISCAL_YEAR_MONTH], --fiscal year
31 [HOLIDAY_INDICATOR], --holiday iden
32 [WEEKDAY_INDICATOR])
33 select
34 @i,
35 CONVERT(varchar(10),@startdate,101),
36 DATENAME(mm,@startdate)+' '+DATENAME(DD,@startdate)+', '+DATENAME(YYYY,@startdate),
37 DATEPART(DW,@startdate),
38 DATEPART(MM,@startdate),
39 DATEPART(YYYY,@startdate),
40 'F'+ CONVERT(varchar(7),@startdate,23),
41 case
42 when( CONVERT(varchar(5),@startdate,101) in ('01/01','01/05','02/05','03/05','01/10','02/10','03/10','04/10','05/10','06/10') ) then 1
43 else 0 end,
44 case
45 when(DATENAME(DW,@startdate) in ('Saturday','Sunday')) then 1
46 else 0 end
47
48 if DATEDIFF(DD,@startdate,@enddate)>=0
49
50 begin
51 set @startdate = DATEADD(dd,1,@startdate)
52 set @i=@i+1
53 continue
54 end
55
56 else
57
58 begin
59 break
60 end
61
62 end

SQL点滴5—产生时间demention,主要是时间转换相关推荐

  1. SQL点滴12—SQL Server备份还原数据库中的小把戏

    原文:SQL点滴12-SQL Server备份还原数据库中的小把戏 备份数据库时出现一个不太了解的错误 ,错误信息"is formatted to support  1 media fami ...

  2. SQL点滴26—常见T-SQL面试解析

    SQL点滴26-常见T-SQL面试解析 原文:SQL点滴26-常见T-SQL面试解析 它山之石可以攻玉,这一篇是读别人的博客后写下的,不是原原本本的转载,加入了自己的分析过程和演练.sql语句可以解决 ...

  3. SQL点滴19—T-SQL中的透视和逆透视

    原文:SQL点滴19-T-SQL中的透视和逆透视 透视 今天抽一点时间来看看透视和逆透视语句,简单的说就是行列转换.假设一个销售表中存放着产品号,产品折扣,产品价格三个列,每一种产品号可能有多种折扣, ...

  4. sql语句中的时间查询

    一般来说,我们在mysql数据库纪录数据时间时,都会选择datatime类型,这样时间可以精确到秒.但随之而来的一个问题是,当我们要取得某一段时间内的数据内容会有一些时间转换上的麻烦,例如我们要取得2 ...

  5. 渗透测试——sql注入进阶/基于时间的盲注/一看就会/

    目录 一.注入点判断 注入类型 SQL注入的类型 二.基于时间的时间盲注 什么是时间盲注 sleep()函数 常用函数 三.bWAPP基于时间的盲注实战 一.注入点判断 1.输入一个单引号',因为语句 ...

  6. SQL注入-盲注-时间注入-报错注入-布尔盲注-DNSlog注入-宽字节注入-WAF绕过-SqlMap使用

    Sqli-labs的安装 1.安装WAMP http://www.wampserver.com/ WAMP是php + mysql + Apache环境集成工具 2.下载Sqli-labs https ...

  7. 用sql语句实现按时间求累计值

    用sql语句实现按时间求累计值 日期             数值 <?xml:namespace prefix = st1 />2005-5-1      2.4 2005-5-2    ...

  8. SQL点滴31—SQL语句中@@IDENTITY和@@ROWCOUNT区别

    原文:SQL点滴31-SQL语句中@@IDENTITY和@@ROWCOUNT区别 SQL语句中@@IDENTITY和@@ROWCOUNT区别 在一条 INSERT.SELECT INTO 或大容量复制 ...

  9. PHP获取MySQL执行sql语句的查询时间

    PHP获取MySQL执行sql语句的查询时间 1. $t1=microtime(true); mysql_query($sql); echo microtime(true)-$t1; 2. //计时开 ...

最新文章

  1. 关于SAP Cloud Platform ABAP环境费用的问题
  2. 嵌入式linux系统移植的四大步骤_如何移植开源软件到嵌入式Linux系统
  3. 不定方程(质数与因数)
  4. Spark操作Hive分区表
  5. superoneclick 2.2_总投资2.2亿!又一年产10万吨水性乳液项目开工
  6. notepad++打开bin文件
  7. GBase8a如何选择 hash 分布列
  8. Need assistance with accessing your developer account
  9. 低功耗MCU的选择方法
  10. 计算机二级考试公网入口和教育网入口,考试入口
  11. 小甲鱼C++快速入门——第四天
  12. 带有分销体系的开源知识付费系统——cremb
  13. 基于Java--获取城市天气与给手机发送验证码--HTTP协议实践
  14. VISUAL STUDIO入门使用教程
  15. 软考软件设计师基础知识—法律法规知识
  16. 本科+研究生七年之痒,我的经历希望能给你启发和坚持
  17. tushare怎么用 雪球股票网址 网络爬虫python
  18. 【若泽大数据】MySQL参数详解
  19. 前端动画——网页时钟
  20. Java Heap dump文件分析工具jhat简介

热门文章

  1. Science:细胞如何测量自身的大小?答案是:DNA含量
  2. 《中国基础研究竞争力报告2020》发布,6图表速览报告核心结论
  3. 从生态、业绩角度分析芯片行业
  4. 城科会刘朝晖:从互联网大脑模型看城市大脑
  5. “数字化”才是智能制造的基础!
  6. AI+医疗:基于模型的医疗应用大规模分析 | 腾讯AI Lab学术论坛演讲
  7. 最前线丨新零售结果、AT暗战,今年的618都讲了哪些故事
  8. 如何理解和评价机器学习中的表达能力、训练难度和泛化性能
  9. 腾讯——这可是一只“骨骼清奇”的狗
  10. 程序员有钱了都干什么?买豪宅,玩跑车,上太空!| 涛滔不绝