Posted By: Jovo () on 'CZdatabases'
Title: Omezeni mesici
Date: Tue Nov 13 20:52:56 2001
Ahoj.
Uz vicekrat jsme narazili na problem omezeni vyberu dat pres mesice.
Kdyz je treba na formulari
Vyhodnotit za ROK>____ a MESIC>__
A kdyz pak mate
SELECT ...
FROM ...
WHERE datum <= konec_intervalu
AND datum >= zacatek_intervalu
tak narazite na problem, ze kdyz mate zadane jen mesice, pak konec intervalu
musite spocitat, stejne tak i zacatek. No ... dam priklad:
zadano od 2001 01 do 2001 05
zacatek_intervalu = GetDatum(01,01,2001)
konec_intervalu = GetDatum(31,05,2001) ... sakra, jak mam zjistit, kolik
ma konkretni mesic dnu ? Ve velke vetsine pripadu jsou na to knihovni funkce,
ale me napadl maly trik:
zacatek_intervalu = GetDatum(01,01,2001)
mesic = 05; rok = 2001;
IF mesic = 12 THEN
mesic = 1; rok = rok + 1;
ELSE
mesic = mesic + 1
END IF
konec_intervalu = GetDatum(01,mesic,rok);
SELECT ...
FROM ...
WHERE datum < konec_intervalu
AND datum >= zacatek_intervalu
// misto <= se da jen <
No a to je cele :-) Kdyz jsem videl, jak se nekteri lide pachti s
prepocitavanim prestupnych roku ... tenhle trik se misto toho ujal :-)
Trvalo mi par minut, nez jsem na to prisel, ale kdyz jsem se zacal naparovat
u obeda, tak jeden borec prisel na uplne to same reseni behem dvou vterin.
A sklaplo mi :-)
Jovo.