Avatar billede moejensen Nybegynder
07. maj 2006 - 16:08 Der er 6 kommentarer og
1 løsning

konvertering af varchar til datetime

Hejsa,

Jeg har en tabel med en masse data, hvor datoen og tiden er skrevet ind i en celle defineret som varchar, hvislket gør at man ikke kan søge i tiden. Formatet er således: dd-mm-åååå tt:mm:ss'.

Hvordan konvertere jeg denne celle, så det bliver en datetime, så jeg kan søge på en tidsperiode?
Avatar billede ldanielsen Nybegynder
07. maj 2006 - 17:35 #1
Lav en ny kolonne, dtmNyDatokolonne, med datatype datetime

I princippet skulle du så bare køre denne:


UPDATE Tabelnavn SET dtmNyDatokolonne = strGlDatoKolonne

MEN det går nok ikke, for du skal fortælle den hvilket format den skal forvente fra varcharkolonnen.

Så:

UPDATE Tabelnavn SET dtmNyDatokolonne = CONVERT(datetime, strGlDatoKolonne, 105)

- hvor 105 er en style som du kan finde i BOL's afsnit om CAST og CONVERT
Avatar billede ldanielsen Nybegynder
07. maj 2006 - 17:36 #2
Derefter kan du slette den gamle kolonne
Avatar billede moejensen Nybegynder
07. maj 2006 - 18:16 #3
Jeg tror ikke jeg er helt med på hvad du mener med:

- hvor 105 er en style som du kan finde i BOL's afsnit om CAST og CONVERT
Avatar billede moejensen Nybegynder
07. maj 2006 - 21:29 #4
har fundet ud af det :-)

Tak for hjælpen.

Laver du et svar
Avatar billede ldanielsen Nybegynder
08. maj 2006 - 09:38 #5
Svar

- og tak
Avatar billede moejensen Nybegynder
15. maj 2006 - 08:06 #6
Nå, nåede så lige at få en fejl her efter den 12, da den åbenbart har fået dem konverteret forkert, så den har taget fejl af dage og måneder.

dd-mm-åååå er blevet til  dd/mm/åååå, men ms sql gemmer det som mm/dd/åååå, så nu fejler alle scripts fordi en måned ikke kan hedde 15.....

11/5/2006 3:15:37 PM
Avatar billede ldanielsen Nybegynder
15. maj 2006 - 11:09 #7
MSSQL gemmer ikke datoer i et bestemt format. Når du ser at det er mm/dd/åååå, så er det den application du ser det med der viser dig det format.

Så fejlen ligger i den kode der fylder datoer i feltet, og evt også i den der har konverteret de gamle datoer for dig.

Bruger du min metode med CONVERT, og anvender du en style der passer med dit format? Der er andre løsninger, men denne er den mest enkle.

Sjovt nok et det helt store problem med datetime felter at få skrevet datoerne ind, og det er faktisk slet ikke svært.

Vis mig den kode der gemmer datoerne, så skal jeg hjælpe.
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