分享到:
发表于 2011-08-01 18:20:20 楼主 | |
时间维度经常用到,抽时间用 php 写了个脚本。 生成创建时间维度数据的 SQL 语句。 //时间维度 //易铎 //2011-08-01 $x = 0; for($i = 0; $i <= 23; $i ++) { for($j = 0; $j <= 59; $j ++) { if ($i < 12) { $appm = '上午'; } else { $appm = '下午'; } if (($i >= 9 && $i < 12) || ($i >= 13 && $i < 18)) { $worktime = "是"; } else { $worktime = "不是"; } echo sprintf ( "insert into DimTime ([TimeKey] ,[HourKey],[HourText],[worktime],[MinuteKey],[ampm])values(%d,%d,'%d点','%s','%02d:%02d','%s')", $x, $i, $i, $worktime, $i, $j, $appm ) . "rn"; $x ++; } } ?> 执行结果: insert into DimTime ([TimeKey] ,[HourKey],[HourText],[worktime],[MinuteKey],[ampm])values(0,0,'0点','不是','00:00','上午') insert into DimTime ([TimeKey] ,[HourKey],[HourText],[worktime],[MinuteKey],[ampm])values(1,0,'0点','不是','00:01','上午') insert into DimTime ([TimeKey] ,[HourKey],[HourText],[worktime],[MinuteKey],[ampm])values(2,0,'0点','不是','00:02','上午') ... insert into DimTime ([TimeKey] ,[HourKey],[HourText],[worktime],[MinuteKey],[ampm])values(1437,23,'23点','不是','23:57','下午') insert into DimTime ([TimeKey] ,[HourKey],[HourText],[worktime],[MinuteKey],[ampm])values(1438,23,'23点','不是','23:58','下午') insert into DimTime ([TimeKey] ,[HourKey],[HourText],[worktime],[MinuteKey],[ampm])values(1439,23,'23点','不是','23:59','下午') 共1440条,粒度为每分钟一条。 时间维度表结构 CREATE TABLE [dbo].[DimTime]( [TimeKey] [smallint] NOT NULL, [HourKey] [tinyint] NOT NULL, [MinuteKey] [nchar](5) NOT NULL, [worktime] [nchar](2) NOT NULL, [ampm] [nchar](4) NOT NULL, [HourText] [nchar](3) NOT NULL, CONSTRAINT [PK_DimTime] PRIMARY KEY CLUSTERED ( [TimeKey] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] |
|
楼主热贴
个性签名:无
|
发表于 2012-01-30 13:29:10 3楼 | |
您的内容正在火速审核中,请稍等 |
|
发表于 2012-01-08 14:56:10 2楼 | |
您的内容正在火速审核中,请稍等 |
|
发表于 2011-10-25 16:44:56 1楼 | |
简单 | |
针对ZOL星空(中国)您有任何使用问题和建议 您可以 联系星空(中国)管理员 、 查看帮助 或 给我提意见