Avatar billede runeklausen2 Nybegynder
25. april 2006 - 10:29 Der 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.

Hvad gør jeg galt?
Avatar billede the_party_dog Nybegynder
25. april 2006 - 10:33 #1
Hvad ønsker du at opnå ved din konvert?

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.
Avatar billede bennytordrup Nybegynder
25. april 2006 - 10:38 #2
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.
Avatar billede ldanielsen Nybegynder
25. april 2006 - 10:38 #3
Du har en dato, og datoer har ikke noget format.


Format kommer først ind når du vil se datoen, for så skal den jo laves om til en tekststreng.

Med mindre du ikke har en dato, men derimod en tekststreng som du vil lave om til en anderlsdes tekststreng.

Er datatypen datetime eller smalldatetime?
Avatar billede runeklausen2 Nybegynder
25. april 2006 - 10:40 #4
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...
Avatar billede runeklausen2 Nybegynder
25. april 2006 - 10:41 #5
datetime
Avatar billede ldanielsen Nybegynder
25. april 2006 - 10:42 #6
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)

SELECT CONVERT(varchar(8), CONVERT(datetime, '25-04-2006', 105), 4)

Måske kan det bruges?
Avatar billede ldanielsen Nybegynder
25. april 2006 - 10:43 #7
ok det er datetime, og du vil bare have det vist i formatet 4:

SELECT CONVERT(varchar(8), dtmDitDatoFelt, 4)
Avatar billede runeklausen2 Nybegynder
25. april 2006 - 10:49 #8
Merci!

svar og du skal få point...
Avatar billede ldanielsen Nybegynder
25. april 2006 - 10:53 #9
Takker :o)

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.
Avatar billede bennytordrup Nybegynder
25. april 2006 - 10:56 #10
ldanielsen >> Vi her helt enige.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester