生成时间维
来源:互联网 发布:关于人工智能的议论文 编辑:程序博客网 时间:2024/05/18 15:30
先建立一个dimdate的structure五木有古弟母而致皆,继时先贬利孝高道然后直接用procedure生成数据南顺中古聪悔仕南。非乱子断阉确定起始日期和结束日期五木有古弟母而致皆,继时先贬利孝高道然后就插入记录了南顺中古聪悔仕南。非乱子断阉
下面是基本的代码五木有古弟母而致皆,继时先贬利孝高道你可以再加入你自己需要的function
declare
@start_date datetime
,@end_date datetime
,@loop_day datetime
,@diff int
,@loop int
Select
@start_date ='1996-01-01'
,@end_date = '1998-12-31'
,@loop = 0
select
@diff = datediff(dd,@start_date,@end_date)
while @loop <= @diff
begin
select @loop_day = dateadd(dd,@loop,@start_date)
insert into dimDate
select
convert(varchar,@loop_day,112),
@loop_day,
dayOfWeek=case datepart(weekday,@loop_day)
when 1 then 7
else datepart(weekday,@loop_day)-1
end,
DATENAME(WEEKDAY, @loop_day),
day(@loop_day),
1+datediff(dd,dateadd(yy,datediff(yy,0,@loop_day),0),@loop_day),
DATEPART("week",@loop_day),
month(@loop_day),
DATENAME(month, @loop_day),
year(@loop_day),
'Q'+cast (datepart(qq,@loop_day) as char),
isweekend=case datepart(weekday,@loop_day)
when 1 then 'yes'
when 6 then 'yes'
when 7 then 'yes'
else 'no'
end
select @loop = @loop + 1
end
*******************************
create table table1(the_date datetime)
declare @i int
select @i=datediff(day,'2001-01-01',getdate())
while (@i>0)
begin
insert into table1 (the_date) select dateadd(day,@i,'2001-01-01')
select @i=@i-1
end
********************************
declare @b datetime
set @b = '2001-1-1'
while @b <= getdate()
begin
insert into yourtable (the_date, the_day, the_month) values
(@b, day(@b), month(@b))
set @b = dateadd(day, @b, 1)
end
select * from yourtable
*****************
declare @b datetime
set @b = '2001-1-1'
while @b <= getdate()
begin
insert into yourtable (the_date, the_day, the_month) values
(@b, day(@b), month(@b))
set @b = dateadd(day, 1, @b)
end
select * from yourtable
*******************
1,建序数表
select top 8000 identity(int,0,1) as N into numtab from
(select top 100 id=1 from sysobjects) as a,
(select top 100 id=1 from sysobjects) as b,
(select top 100 id=1 from sysobjects) as c
2,
insert into 表(the_date,the_day,the_month)
select n+cast('2001-01-01' as datetime)
,day(n+cast('2001-01-01' as datetime))
,month(n+cast('2001-01-01' as datetime))
from Numtab
where n+cast('2001-01-01' as datetime)>getdate()
********************
创建临时表
select top 55152 identity(int,1,1) as iid into #tmp
from sysobjects a,sysobjects b,sysobjects c
select * from #tmp
生成时间维语句
select *,dateadd(day,iid-1,'1949-01-01') as 日期,
year(dateadd(day,iid-1,'1949-01-01')) as 年份,
month(dateadd(day,iid-1,'1949-01-01')) as 月份,
day(dateadd(day,iid-1,'1949-01-01')) as 日期,
datepart(quarter,(dateadd(day,iid-1,'1949-01-01'))) as 季度,
datepart(weekday,(dateadd(day,iid-1,'1949-01-01'))) as 星期,
day(dateadd(day,iid-1,'1949-01-01')) as 月的第几表,
datepart(week,(dateadd(day,iid-1,'1949-01-01'))) as 年的第几周
from #tmp
- 生成时间维
- 交易时间生成
- excel生成随机数时间
- JavaScript生成时间
- MySQL 生成 时间轴
- js生成时间戳
- java生成时间戳
- java生成时间
- 生成时间戳标识
- mysql生成随机时间
- JS生成各种时间
- java生成时间戳
- 根据时间生成订单
- SQLServer生成时间范围
- 页面动态生成时间
- C# 生成时间戳
- c#生成时间戳
- Java生成时间戳
- 揭秘QTP的DeviceReplay对象
- 学习C++primer心得08.6.2--有关vector类
- Vectored Exception Handling
- 正则表达式 常用
- ubuntu上修改wine的字体
- 生成时间维
- 浪曦-ASP.NET-简易留言板------------------------3(结局篇)
- java/lang/ClassFormatError: Bad version informationd在Eclipse和Jbuilder的修改方法
- 某网站挂Trojan-Downloader.SWF.Small利用flash漏洞传播Trojan-Downloader.Win32.Small
- 一HOW TO EXCUTE CODE IN DATA SEGMENT
- javascript小技巧&&JavaScript[对象.属性]
- Desktop WCF与Compact WCF之间的差异
- 彼岸的读者
- DllMain详解