Dato format i Access og på hjemmesider
Når min hjemmeside sender 01-12-2009 (december) til databasen bliver det lagret som 12-01-2009 (januar)mm/dd/yyyy kontra dd/mm/yyyy
Hvad gør man lige ved det?
I min endeløse søgen på den bedste måde at arbejde med datoer i databaser, har jeg fundet en del facts som måske kan være andre til gavn. Desværre har det ikke bragt mig frem til den endelige løsning.
Jeg håber derfor på et par kvalificerede råd fra bedre vidende.
FACTS (ret mig hvis jeg tager fejl):
Når datoer er lagret i en Access database:
1) MS-Access standard datoformat er altid: mm/dd/yyyy
2) Uanset hvilket datoformat du sætter Access til at vise, så er det kun visuelt, da datoer lagres som en talværdi.
Denne talværdi er altid udregnet fra datoen 30. december 1899 (før eller efter). Værdien for 7. juli 1993 er således lagret i Access som 34157, altså 34.157 dage efter nævnte dato (dato før angives som negativ værdi).
3) Format, input-mask, validation-rule og hvad der ellers er af muligheder i Access er kun gældende for hvordan du bruger og oplever datoer i Access programmet - intet ændrer på selve datoens værdi.
4) Du kan sætte din webserver til en hvilken som helst landekode/sprog du måtte ønske, men det ændrer stadig kun på hvordan du SER datoer - ikke hvordan de lagres i Access.
Når datoer skal vise:
1) Når man skal vise datoer på en hjemmeside, kan man vælge hvordan man ønsker datoen vist på flere måder.
Man kan inkludere et LCID kald i sit script, hvor man sætter/tvinger en landekode, der bestemmer i hvilket format man bl.a. ønsker datoer og decimaltal vist (uanset betragterens landekode).
2) Man kan også benytte en kode omkring den enkelte dato, som f.eks. i asp "FormatDateTime(todaysDate,2)" for at vise datoen i forskellige formater (her ,2 for ShortDate).
Når datoer skal lagres i en Access database?
Da intet af ovenstående ændrer på lagring af datoer i Access, vil de altid blive modtaget "forkert", når de afsendes fra hjemmesiden i et andet format end mm/dd/yyyy.
Hvad er så den bedste løsning hvis man på sin hjemmeside* har et inputfelt eller en pop-up-kalender på "dansk" og derefter skal uploade værdien til databasen? (*I mit tilfælde asp).
Er vi ude i noget med at dele op i dag, måned og år hver for sig?
Er det løsningen at skifte mellem text-strings og datoer?
Eller noget helt tredje?
MVH
Michael
100P. Forstår ikke helt det med points men er sikker på at mange andre end jeg vil give deres højre arm for den gyldne løsning!