drop procedure if exists pro_dim_date;
tudou@gyyx
create procedure pro_dim_date(in bdate date,in edate date)
begin
declare var date default bdate;
declare evar date default date_add(edate,interval 1 day);
declare bweek date;
declare eweek date;
while var
set bweek = date_add(date_sub(var,interval 1 week),interval 1 day);
set eweek = date_sub(date_add(var,interval 1 week),interval 1 day);
insert into gyyx_report.dim_date
`date_id`,
`date_name`,
`date_of_month`,
`year_id`,
`year_name`,
`quarter_id`,
`quarter_name`,
`month_id`,
`month_name`,
`month_of_year_name`,
`month_of_year_id`,
`week_id`,
`week_name`,
`week_of_year_id`,
`week_of_year_name`,
`is_weekend`
values
date_format(var,'%y%m%d'),
date_format(var,'%y-%m-%d'),
dayofmonth(var),
year(var),
concat(year(var),'年'),
quarter(var),
concat(quarter(var),'季度'),
date_format(var,'%y%m'),
concat(year(var),'年',month(var),'月'),
concat(month(var),'月'),
month(var),
weekday(var),
case weekday(var) when 0 then '星期一' when 1 then '星期二' when 2 then '星期三' when 3 then '星期四' when 4 then '星期五' when 5 then '星期六' when 6 then '星期日' end,
weekofyear(var),
concat('第',weekofyear(var),'周(',month(bweek),'月',day(bweek),'日~',month(eweek),'月',day(eweek),'日'),
case when weekday(var)>4 then '是' else '否' end
set var=date_add(var,interval 1 day);
end while;
end呼叫:
call pro_dim_date('2005-01-01','2013-12-31')
結果201312172013-12-171720132023年44季度2013122023年12月12月121星期二51第51周(12月11日~12月23日否
201312182013-12-181820132023年44季度2013122023年12月12月122星期三51第51周(12月12日~12月24日否
201312192013-12-191920132023年44季度2013122023年12月12月123星期四51第51周(12月13日~12月25日否
201312202013-12-202020132023年44季度2013122023年12月12月124星期五51第51周(12月14日~12月26日否
201312212013-12-212120132023年44季度2013122023年12月12月125星期六51第51周(12月15日~12月27日是
201312222013-12-222220132023年44季度2013122023年12月12月126星期日51第51周(12月16日~12月28日是
201312232013-12-232320132023年44季度2013122023年12月12月120星期一52第52周(12月17日~12月29日否
201312242013-12-242420132023年44季度2013122023年12月12月121星期二52第52周(12月18日~12月30日否
201312252013-12-252520132023年44季度2013122023年12月12月122星期三52第52周(12月19日~12月31日否
201312262013-12-262620132023年44季度2013122023年12月12月123星期四52第52周(12月20日~1月1日否
201312272013-12-272720132023年44季度2013122023年12月12月124星期五52第52周(12月21日~1月2日否
201312282013-12-282820132023年44季度2013122023年12月12月125星期六52第52周(12月22日~1月3日是
201312292013-12-292920132023年44季度2013122023年12月12月126星期日52第52周(12月23日~1月4日是
表結構:
create table `dim_date` (
`date_id` int(11) not null comment '20110512',
`date_name` varchar(16) default null comment '2011-05-12',
`date_of_month` int(11) default null comment '12',
`year_id` int(11) default null comment '2011',
`year_name` varchar(16) default null comment '2023年',
`quarter_id` int(11) default null comment '2',
`quarter_name` varchar(16) default null comment '2季度',
`month_id` int(11) default null comment '5',
`month_name` varchar(16) default null comment '5月',
`month_of_year_name` varchar(16) default null comment '2023年5月',
`month_of_year_id` int(11) default null comment '201105',
`week_id` int(11) default null,
`week_name` varchar(16) default null,
`week_of_year_id` int(11) default null,
`week_of_year_name` varchar(32) default null,
`is_weekend` enum('否','是') default null comment '是否週末',
primary key (`date_id`),
key `ix_dim_date_date_name` (`date_name`),
key `ix_dim_date_month_id` (`month_id`),
key `ix_dim_date_year_id` (`year_id`),
key `ix_dim_date_quanter_id` (`quarter_id`),
key `ix_dim_date_week_of_year_id` (`week_of_year_id`,`week_of_year_name`)
) engine=myisam default charset=latin1
分享到:
2012-03-14 18:07
瀏覽 656
君生我未生,我生君已老
君生我未生,我生君已老。君恨我生遲,我恨君生早。恨不生同時,日日與君好。我生君未生,君生我已老。我離君天涯,君隔我海角。我生君未生,君生我已老。化蝶去尋花,夜夜棲芳草。我不知道我是以何種感情把這詩看下去的。只是在看的時候想起你,然後莫名流淚。故事還要從那個炎熱的五月說起,從那個充滿紙醉金迷的上海說起...
君生我未生 我生君已老
你在歡笑,體會童年的快樂的時候,我還沒出現,準確的說,我爸和我媽剛好上 你拿著課本認真學習的時候,我剛剛來到這個世界上,剛剛學會啼哭.看見你曾經的舊照,覺得我們的時代感拉遠了不少,也就幾年而已,感覺你比我多過了幾個世紀。嘴角上揚的時候,是你最帥的樣子,我忍不住想多看你幾眼,又害怕被你發現,又害怕別人...
既生 Redis 何生 LevelDB ?
了解 redis 的同學都知道它是乙個純記憶體的資料庫,憑藉優秀的併發和易用性打下了網際網路項的半壁江山。redis 之所以高效能是因為它的純記憶體訪問特性,而這也成了它致命的弱點 記憶體的成本太高。所以在絕大多數場合,它比較適合用來做快取,長期不被訪問的冷資料被淘汰掉,只有熱的資料快取在記憶體中,...