15. marts 2006 - 15:42Der er
21 kommentarer og 1 løsning
access bytter om på datoerne
Mine brugere vælger dato og klokkeslet som jeg lægger i access-databasen i formatet "dd-mm-yyyy 00:00:00". Når data først ligger i databasen bytter access om på "dd" og "mm", men kun når "dd" er mindre end 13. Dvs.: "12-04-2006" bliver til "04-12-2006" mens "13-04-2006" lægger sig i basen som, ja, "13-04-2006". Datatypen er datetime, jeg bruger ## om datoen, når jeg inserter. Access-programmet er dansk. Det har ikke noget at gøre med indstillinger i brugerens kontrolpanel. Jeg har rodet lidt rundt med "format property" eller hvad det nu hedder i Access. At Access tilsyneladende er helt egenrådig kommer lidt bag på mig. WHAT-TO-DO?
Nu ved jeg ikke om du bruger et scriptsprog, men hvis du add'er parameters til dine datoer vil det blive gemt korrekt i databasen. Der er et spørgsmål her omhandlende emnet:
if you insert the date in this format yyyy-mm-dd than you can be sure that the data is reaching the database correctly.
I know almost nothing about web programming but I am sure that I have seen something wher it is neceesary to inlcud e aline of code which indicates the date format. So if you dont include that then it might very well be getting changed. But it is NOT Access wich is storing the date incorrectly, its the program which is writing the data to Access.
Suppenudel, jeg laver websites i asp-rammen og skriver i ODO, vbscript og sql. And terry, I use an ordinary sql-insert statement. Jeg skal lige afprøve det suppenudel foreslår, så snart jeg har puttet mine børn. Jeg vender tilbage.
Når du i kode pakker datoer ind i ## vil Access umiddelbart forsøge at tolke datoen efter amerikansk format (mm-dd-yyyy). Kun hvis det ikke kan lade sig gøre forsøger den at tolke efter europæisk format - netop når de første ciffre er 13 eller derover. Det gælder også i en dansk Access. Prøv i stedet at pakke datoen ind i "".
Jeg har prøvet alt det med at formatere datoen til dd-mm-yyyy direkte i SQL'en, men det har aldrig hjulpet. Så snart vi kommer til, som claesdamlund beskriver, starten af måneden, tror den at det første tal er måneden. Kun parameters i scriptet har fået det til at virke korrekt.
Husk at datoer (og klokkeslet) altid er gemt som heltalsserier i alle databaser - også Access. Derfor kan du måske bruge CLng-funktionen til at konvertere din dato til et heltal inden du smider den i databasen. Det bør ikke kunne fejle. Ellers må du give et mere konkret eksempel på hvad det er du gør, som fejler.
Hej alle. Her er min insert: sql="insert into KalenderTabel values(" & antal & ",'" & request.form("overskrift") & "','" & kropstekst & "',#" & session("OpdateDate") & " " & request.form("tidspunkt") & "#,#" & now & "#," & session.contents("BrugerId") & ")"
Af forskellige årsager skal formatet som sagt være "dd-mm-yyyy" i display. Jeg har prøvet med clng-funktionen og "" i stedet for ## (hvilket ville give andre problemer, selvom det havde virket). Det lader til I er (lidt) enige om at løsningen ligger i at konvertere datoen end den smides i basen. "session("OpdateDate")" indeholder en dato i formatet "dd-mm-yyyy" og både den dato og datoen i now byttes om idet datoen lægges i basen.
Hej igen Det virker alligevel med "" i stedet for ## sådan som claesdamlund foreslår. Alt fungerer tilsyneladende som det skal nu. Så pointsne går til damlund. Nu skal jeg bare lige finde ud af hvordan jeg giver dem til ham. Det synes ikke at fremgå helt klart
Fint det virker - men det kan snyde fordi vi i dag har d. 15-03-06, hvilket er overskredet de 12 måneder, så datoen automatisk følger 03 som måneden, men vent og se når april starter, om den så begyneder at indskrive 4. Januar 2006. - Det har det i hvert fald gjort for mig da jeg bøvlede med det. Men nej, hvis du kan kigge direkte i din Access og den indskrevne dato står rigtigt så må det jo virke :-)
Ja, til min egen overraskelse lægger datoen sig i basen i det format som den indtastes. Jeg var ellers overbevist om at man skulle bruge ## til datatypen datetime. Men sådan er det tilsyneladende ikke. Og jeg bevarer muligheden for datakronologi ved brug af "order by [datokolonne] desc", f.eks.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.