11. februar 2007 - 23:27Der er
8 kommentarer og 1 løsning
Konvertere en VARCHAR til Datetime i SELECT sætningen.
Hejsa.
Jeg skal have lavet et udtræk fra min SQL DB, hvor udtrækket skal indeholde : Fuldt Navn, Fødselsdagsdato, Ansættelsesdato.
Udtrækket skal gerne sorteres efter fødselsdagsdato.
Mit problem er at Fødselsdagsdato ligger i SQL databasen som VARCHAR værdier. Kan man konvertere disse til DATETIME mens man laver SQL udtrækket?
Jeg er ikke videre hård til SQL udtræk, men går ud fra at hvis man skriver "SELECT * FROM medarbejderdb ORDER BY fødselsdato", og fødselsdato var et DATETIME felt, så ville den sortere korrekt efter fødselsdato ik'???
Jeg ved godt at det er noget mærkeligt noget at det ligger som VARCHAR, men det er nogle data, som kommer fra vores gamle AS/400 løn system. Det er desværre ikke muligt at lave udtrækket herfra til andet end VARCHAR felter.
Ok, men hvordan ser syntaks ud hvis man skal konvertere fra VARCHAR til DATETIME i ens SQL sætning?
Mine VARCHAR felter ser således ud : '291207' for 29. December 2007. Og for at det ikke skal være løgn, så ser de således ud hvis dag starter med 0, f.eks. ville 6. December 2007 se således ud i min database '61207'
Hvis måneden er på et ciffer, så er der stadig et nul i. Hvordan tager jeg højde for det så? Og det samme med dato. Det er der ikke taget højde for i overstående eksempel er der?
Jeg kan ikke lige teste før i morgen, men har jeg forstået det rigtigt hvis sætningen skal se sådan ud, når vi ser bort fra manglende nul værdi i dato feltet?
"SELECT Navn, cast(substring(birthday,5,2)+substring(birthday,3,2)+substring(birthday,1,2) as datetime) AS Fødselsdato from medarbejderdb"
Dette ------------ Hvordan tager jeg højde for det så? Og det samme med dato. Det er der ikke taget højde for i overstående eksempel er der? ------------
skulle have været
------------ Hvordan tager jeg højde for 0 i dato værdien så? Det er der ikke taget højde for i overstående eksempel er der? ------------
Fandt ud af at alle vores udlandske afdelinger, der står fødselsdato i et andet felt i løn systemet da de ikke har noget CPR nr. som i Danmark. Så derfor blev det lige pludselig lidt svært at sortere på fødselsdato i SQL sætningen når fødselsdatoer kan ligge i 2 forskellige felter.
Lagde mit udtræk ind i et dataset i stedet for, hvor jeg så fik samlet fødselsdatoer i et felt. Herefter rendte jeg mit dataset igennem med en .select kommando og sorterede på fødselsdato, og oprettede så min slut fil ud fra dette loop.
Men smid et svar alligevel! For indsatsens skyld :-)
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.