Diskuze: Zápis pouze měsíc a den do databáze
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
ahoj myslím, že 1900 nebyl přechodným rokem...pamatuji si poučku, že
přechodný rok je jednou za 4 roky, pak jednou za 100 let není a nakonec
jednou za 400 let je...
záleží docela co s tím plánuješ potom dělat... vygenerovat Velikonoce, je
otázka... osobně jsem to řešil funkcí do které nacpeš datum a ona ti
vyplivne, zda ten den je český státní svátek (umí i Velikonoce)
k dotazu -- v db bych použil normální typ datum
Mezinárodně používaný občanský kalendář je gregoriánský kalendář, který má přestupný každý čtvrtý rok (rok dělitelný beze zbytku čtyřmi), ale roky dělitelné 100 jsou přestupné jenom tehdy, jsou-li dělitelné také 400. Přestupný rok má přidaný 29. únor.
Díky... o tomto jsem nevěděl. Něco na tom asi bude. Teď jsem si zkusil i
funkci PHP a ta mi při zadání date('Y-m-d',strtotime('1900-02-29')) vypíše
1900-03-01.
Nicméně v tomto mně zmátl excel, který mi normálně rok 1900 označil za
přestupný a když jsem měl 28.2.1900+1, tak mi 29.2.1900 zobrazil (ale, že
se divím... není to jediná věc, která je v excelu hloupá).
S funkcí pro velikonoce problém nemám, o té vím. Tabulku chci využít k vícero účelům. Jak pro zobrazení svátku na webu (jak státního, tak jmenin), tak pro zjištění dne, zda se jedná o státní svátek.
Píšeš, že bys použil normální typ datum, ale co bys použil za rok, abys měl platný formát?
Díky, to upřesňuje příspěvek Tomáše. Jak jsem psal v odpovědi Tomášovi: V tom mně zmátl excel, který mi rok 1900 označil za přestupný. Když jsem v excelu napsal funkci 28.2.1900+1, tak mi datum 29.2.1900 vyhodil.
Jen tedy stále nějak netuším, jak uchopit ten zápis do DB pro opakující se svátky (jak státní, tak jmeniny).
Když už by to bylo tedy v DB a jedné tabulce, tak je podle mne docela
jedno v jakém roce jsou ty svátky uloženy... můžeš použít přeci
konstrukci ve smyslu WHERE typ = 'svátek' AND datum LIKE '%-01-01' což by
mělo vrátit událost patrně s názvem Nový rok .. takže asi nejlepší to
nacpat do nějakého přestupného roku
osobně bych to řešil, ale separé... uvedu příklad... mám tabulku na
události z kalendáře, která má 100k+ záznamů, v tabulce jsou ale i
kalendářové svátky, jelikož mají velmi shodné parametry s událostmi....
potíže ale mohou nastávat tehdy pokud jsou špatně nastavené klíče/indexy
a např. si vymyslím, že na hlavní stránce budu zobrazovat svátek pro
dnešní den...každé načtení stránky díky dotazu prohledává velkou
tabulku událostí kvůli svátku.. (teď pomiňme technologie cache na
různých místech)
takže zpět k tomu, co jsem již psal ... docela záleží na použití,
případně množství budoucích dat...
To samozřejmě ano. Pro ty svátky mám samostatnou tabulku, která bude
mít max. 1000 záznamů. Určitě bych to nemíchal v jedné tabulce např. s
událostmi. To by mi přišlo dost nepraktické.
Zkusím si to nějak v hlavě srovnat a pak snad něco vyplodím
Moc díky za upřesnění přestupného roku.
Zobrazeno 7 zpráv z 7.