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.

Search the boards