29. september 2001 - 17:31Der er
34 kommentarer og 2 løsninger
Datoforvirring i stor stil...
Heg har en database, der indeholder en række datoer, som skal kunne redigeres gennem en ASP-side...
Øverst på mine sider står der Session.LCID = 1030, hvilket gerne skulle give danske indstillinger... Når jeg læser datoerne, bruger jeg Format$([Dato],\'dd-mm-yyyy\') AS VisDato, der giver det rigtige visningsformat...
Men, når jeg gemmer en dato, f.eks. 11-10-2001, bliver den gemt i databasen som 10-11-2001, mens f.eks. 18-10-2001 bliver gemt som 18-10-2001...
Det vil sige, hvis datoen for dagen er mindre end 13, bliver der byttet om på dag og måned...
Hvad kan jeg gøre for at løse det ???
Ved aner ikke, om serverens indstillinger er engelske eller danske... Databasen er en Access 2000, dansk version.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
hvordan kan jeg gennemtvinge, at jeg vil gemme i US formatet ? Det skal kunne gøres fra siderne, da jeg ikke har adgang til rettighederne på serveren...
Når du gemmer dato en selvfølgelig. Datoen bliver vist som specificeret under regional options (set default system locale), eller hvis du specificerer session.LCID (det kræver dog at serveren genkender den specificerede LCID hvilket ikke er sikkert hvis det er en amerikansk server.
Du kan evt. selv formatere dine datoer dag = day(oRs(\"dato\")) md = month(oRs(\"dato\")) aar = year(oRs(\"dato\")) ledato = dag & \"-\" & md & \"-\" & aar
frank_jensen >> når du så hiver datoen ud af databasen (og du har Session.LCID = 1030 i toppen) hvordan bliver udtrækket så? som ønsket eller som det står i databasen?
og hvordan kan jeg vende datoen i VBScript ? (Altså hvilken funktion skal jeg bruge, hvis jeg vil tage den del af en tekststreg ud, f.eks. tegn 6 og 7 ?) Altså kunne jeg godt tænke mig at se en funktion, der kan vende en tekststreg fra dansk datoformat til US datoformat... :o)
\"Det vil sige, hvis datoen for dagen er mindre end 13, bliver der byttet om på dag og måned...\"
vil det sige, at ved de dage der er større end 13 bliver der IKKE byttet om?
når du indsætter datoen på den måde du gør styrer access selv at det rigtige bliver sat ind og derfor _burde_ den altså ikke gøre noget sådant... det burde være nok at have din landekoden i toppen og udskrive datoen ved:
Jeg ved ikke om du kan kontrollere dato formatet, men hvis du som jeg siger, altid bruger US dato format når du INDSÆTTER datoer i din database vil den korrekte dato blive gemt.
NÅR DU INDSÆTTER DATOER dato = date() \' ** Er en dato variabel dag = day(dato) md = month(dato) aar = year(dato)
frank >> det var bare en test - for den er alligevel en lille smule kvik... det som du indsætter med dd-mm-åå opfatter den som en fejl hvis DIT dd er større end 13 - den vil nemlig have måneden der og derfor bytter den det om... den vil have formattet i mm-dd-åå og gør derfor sit bedste for at rette DIN fejl og derfor bytter den om på nogle ting hvis ikke du indtaster der som mm-dd-åå
keysersoze -> Jeg har et JavaScript liggende, der validerer datoen før den blvier sendt til asp-siden, der skal update/inserte recorden, og den validering er ikke i mit test-script...
Men nu har jeg lavet om, så den formatterer om til US format før den gemme, og så er problemet lige pludselig væk...
ja men hvis du laver formatet åååå-mm-dd vil database vide at der er tale om US format, og derfor indsætte den rigtigt, der er jo ikke noget dansk format hvor året kommer først...?
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.