» »

Kako shranjujete "teden v letu" in "dan v tednu"? Ponedeljek kot 0 ali 1?

Kako shranjujete "teden v letu" in "dan v tednu"? Ponedeljek kot 0 ali 1?

HotBurek ::

Dobro jutro.

Evo fantje in dekline, eno mini vprašanje.

Kako shranjujete cifri, ki označujeta teden v letu ter dan v tednu.

MariaDB ima dve funkciji: WEEK in WEEKDAY.

In današnji dan je tretji teden v letu, WEEK vrne 2, ter peti dan v tednu, WEEKDAY vrne 4. Ker začne z nulo... prvi teden v letu je 0, ponedeljek je 0.

In zdej če gledam te podatke v bazi, se mi zdi, da bi hitro prišlo do napake, ker sem navaje, da je prvi teden v letu prikazan z 1, ter da je ponedeljek prikazan z 1... in petek 5... ter sobota 6.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
  • spremenilo: HotBurek ()

PluribusUnum ::

Bere 001 gre.

DamijanD ::

Zakaj bi pa to shranjeval? Načeloma shraniš podatek: datum/timestamp - kaj pa je to te pa mogoče zanima potem v kakšnem reportu/selectu.

Utk ::

V večini baz se da nastavit kater dan je prvi v tednu.

DamijanD je izjavil:

Zakaj bi pa to shranjeval? Načeloma shraniš podatek: datum/timestamp - kaj pa je to te pa mogoče zanima potem v kakšnem reportu/selectu.

Včasih te ne zanima datum, ampak dan v tednu.

Zgodovina sprememb…

  • spremenil: Utk ()

k--p ::

Osebno bi se držal defaultov, večina zadev se začne šteti z 0 v računalništvu, ni važno kaj si navajen.
Za GUI izpis prišteješ 1 in to je to ( npr. si narediš kako helperfunkcijo weekdayHumanFormat oz. svoj mapping kjer ti 0 preslika v "PON" itd. in to dosledno uporabljas).

Zgodovina sprememb…

  • spremenilo: k--p ()

Utk ::

Sql server dneve v tednu šteje od 1 naprej. To je nekako bolj logično, ker podobno kot datum, številka sama pomeni nek podatek, in ni samo index na pravi podatek.

Zgodovina sprememb…

  • spremenil: Utk ()

David Mayer ::

Če to denormalizacijo uporabljaš zaradi nekih optimizacij (in je že vse ostalo pripeljano na maksimum), bi jaz dal oboje 0-based, itak imaš vedno na koncu nek 0-based lookup in je tako dosledno po vsej vertikali. Narediš pa, kakor ti paše, vprašanje celo, če mora biti fizično polje in dosledno usklajeno z dejanskim datetime poljem (najbrž samo eno takšno polje v tabeli zdaj in za vedno?), lahko je polje kot izraz ali pa se poizveduje skozi view. Odgovor - tega načeloma ne shranjujemo.

DamijanD ::

Utk - kaj bi pa bil kakšen tak primer zapisa, kjer te zanima samo dan v tednu, ne pa tudi dejanski datum? (Ne narobe razumeti, ne trdim da ga ni ampak sam se nobenega ne spomnim in me res zanima)

Utk ::

Če imaš nek dogodek, ki se mora zgodit recimo ob torkih in četrtkih, ne glede na datum. Kater datum bi ti tam shranil?

Zgodovina sprememb…

  • spremenil: Utk ()

DamijanD ::

aha v ta namen (jaz sem imel v glavi samo zadeve, ki so se že zgodile:)) - verjetno bi uporabil cron izraz, če bi hotel biti zelo splošen

Utk ::

In kako bi iz njega (učinkovito) potegnil vse dogodke na ta torek?

DamijanD ::

Direktno težko (učinkovito). Verjetno bi (za namen iskanja dogodkov na nek dan) imel nek index po sparsanem cronu (v servisu). Če bi pa to rabil direktno na DB nivoju, bi bilo pa to malo težje...

Utk ::

Zakaj potem ne bi raje shranil dan v tednu kot integer in točno uro kot ali uro ali string, oboje bi bilo bolje kot parsanje.

twom ::

First day of week je nedelja... se pravi nedelja 0, ponedeljek 1. Saj vem, mal sem žleht 8-)

p.s. saj vem, first day of week je lahko tudi monday

DamijanD ::

Utk je izjavil:

Zakaj potem ne bi raje shranil dan v tednu kot integer in točno uro kot ali uro ali string, oboje bi bilo bolje kot parsanje.

odvisno od potreb. Če je najvišja prioriteta, da je to definirano, potem ja. Če je pa lepše, da imaš nek dogodek samo enkrat vpisan z bolj kompleksnim urnikom (torek in četrtek npr), potem pa samo eno polje ne zadostuje (mogoče bi raje imel kar byte in gledal bitke, tako bi lahko imel poljubno kombinacijo dni...). Pač odvisno od potreb in namena. Ampak ja vidim smisel po tem v določenih situacijah.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# in DateTime

Oddelek: Programiranje
101546 (1366) FiDeK
»

Prazniki 2010 (katastrofa) - kaj je potrebno za spremembo zakona? (strani: 1 2 )

Oddelek: Loža
799504 (7269) connel
»

Iskanje naslednje ponovitve - najboljši algoritem (strani: 1 2 )

Oddelek: Programiranje
724877 (3935) Thomas
»

asp-problem z datumom

Oddelek: Izdelava spletišč
111539 (1403) Old-Death
»

Koledar in ponavljajoči se dogodki

Oddelek: Programiranje
5989 (899) darh

Več podobnih tem