Beste allemaal,

Ik zit met het volgende. Op dit moment ben ik bezig met een statistiekenen script waarbij ik veel gegevens wil opslaan per dag!

oa. referer, hostname, ip, kleuren, browser, operating systeem, plugins en ga zo maar door.

Nu hanteer ik een tabel met de volgende elementen

statistiekID
jaar - varchar 4
maand - varchar 2
dag - varchar 2
dagvdweek - varchar 2
gegeven
aantal

Nu is het heel simpel om te zoeken op jaar, maand, dag en zelfs dag v/d week maar het is niet zo simpel om te zoeken tussen 2 bepaalde data's.

bv 2008-01-01 t/m 2008-02-01 (jan 01 2008 t/m feb 01 2008)

Nu vraag ik mij af of het niet beter is voor mijn huidige database om gewoon date te gebruiken.

Kan iemand mij vertellen of ik goed bezig ben of juist beter een ander database structuur kan gebruiken?

Hopelijk begrijpen jullie wat ik bedoel :)
Datum hoort in een DATE of DATETIME te staan. Daar kan je namelijk wél mee rekenen.
Kun je eens een voorbeeld schetsen hoe ik bv

Alle dagen van de huidige week,
Huidige maand
Laatste 14 dagen

etc kan uitlezen middels date?
Zie deze tutorial waar ik als reactie op jouw vraag een hele serie voorbeelden heb gegeven. Ze hebben allemaal een datumtijdstempel (dataype DATETIME) als input. Dat is namelijk het enige juiste formaat voor datums met tijden.

In PostgreSQL gebruik je een TIMESTAMP (niet de verwarren met de waardeloze TIMESTAMP van MySQL!) en zul je de INTERVAL iets moeten aanpassen, quotes om de string in de INTERVAL:

SELECT NOW() + INTERVAL '1 DAY' AS morgen;

INTERVAL is in PostgreSQL een datatype, wat weer erg handig kan zijn.

Reageren