zoukankan      html  css  js  c++  java
  • SQL点滴5—产生时间demention,主要是时间转换

    数据仓库中有时间表,存储时间信息,这个存储过程接收开始时间结束时间,写入时间具体信息。有高手用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

    作者:Tyler Ning
    出处:http://www.cnblogs.com/tylerdonet/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,请微信联系冬天里的一把火

  • 相关阅读:
    PHP新的垃圾回收机制:Zend GC详解
    SSH隧道技术简介
    mysql主从延迟
    非root配置linux下vim
    PHP 中的 9 个魔术方法
    PHP内核介绍及扩展开发指南—Extensions 的编写(下)
    PHP内核介绍及扩展开发指南—Extensions 的编写
    php 扩展开发
    php opcode
    rsa 数学推论
  • 原文地址:https://www.cnblogs.com/tylerdonet/p/1909502.html
Copyright © 2011-2022 走看看