25. april 2006 - 10:29Der er
9 kommentarer og 1 løsning
Konverter dato
Halloha!
jeg har denne dato i min database: 25-04-2006 jeg vil gerne konvertere den til 25.04.06, hvordan gør jeg det, jeg har prøvet med select convert(datetime,convert(char(10),GetDate(),4)) og 104 som style men så siger den: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
Det du prøver på med din sætning er at konvetere en dato om til en tekst og så om til en dato igen. Fordi din server kører engelsk, vil den opfatte 25 som måned, den findes ikke, derfor får du en out-of-range.
IMO bør du lade SQL Serveren om at håndtere datoer som DateTime. Klientkoden skal så sørge for formattering af datoerne til visning samt evaluering af det indtastede til en dato-type i klientkode sproget og videregive denne dato-type til SQL Serveren gennem en parameter.
Hvis du bygger dynamisk SQL op, så formatter datoerne som yyyymmdd (ISO-formatet). Dette genkendes ALTID af SQL Serveren.
Vi bruger noget portal software hvor der er et SQL modul, hvor man ikke rigtig kan lave noget programmering, kun indsætte resultaterne fra sine kolonner...
Denne tager en tekststreng og konverterer den til datetime (inderst) efter formatet 105 (dd-mm-yyyy). Derefter konverterer den denne dato til varchar(8) efter formatet 4 (dd.mm.yy)
Der er en del brugere der tænker at de skal have datoerne i et bestemt format i databasen (fx en dato uden klokkeslæt), men faktisk er der ikke noget format på et datetime felt, en dato er en dato.
Det er først når man skal vise datoer frem man skal formatere dem, ligesom man skal formatere korrekt når man vil indsætte en dato.
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.