Originariamente inviato da Creepy-Eyes
salve a tutti,
dovrei creare una tabella contenente tutti i giorni dell'anno in maniera che il giorno sia nella colonna "giorno" della tabella, il mese nella colonna "mese" è così via...
in altre parole 365 insert sul database!
qualche idea?
grazie in anticipo
Si può fare anche col solo sql. Piuttosto non mi sembra una grande idea quella di separare le componenti di una data.
Comunque:
codice:
create table giorni (
id int not null auto_increment,
giorno tinyint,
mese tinyint,
anno smallint,
primary key (Id)
) engine=myisam;
delimiter $$
create procedure calendario(in anno int)
begin
declare i,ultimo,giorno,mese int;
set i = 0;
select dayofyear(concat(anno,'-12-31')) into ultimo;
while i < ultimo do
select day(concat(anno,'-01-01') + interval i day) into giorno;
select month(concat(anno,'-01-01') + interval i day) into mese;
insert into giorni (giorno,mese,anno) values (giorno,mese,anno);
set i = i + 1;
end while;
end $$
delimiter ;
call calendario(2008);
select * from giorni;
Se passi alla stored procedure come parametro un anno bisestile ne terrà conto generando un record in più.