15. juli 2004 - 11:52Der er
9 kommentarer og 1 løsning
Hvordan laver man tekst dato om til dato
Hejsa Jeg har nu et problem med at trække en dato ud fra et cpr-nummer. Jeg har fået det trimmet, så jeg kun har datoen f.eks. 121290 tilbage, men nu vil jeg gerne finde alle dem, som er 18 eller derover. Lige nu er det en varchar datatype, men det skal vel være en date type istedet. Er der nogen, der kan skrive sådan et statement, så man først konverterer tekst til dato, og så trækker denne dato fra sysdate??
Der bare lige en mindre ting. Der kommer til at stå 2043, da årstallet er før 1950. Jeg har læst om dette, men kan ikke huske, hvordan det er man løser det. har du hørt om det
så trunc'ere jeg resultatet, da jeg kun skal bruge heltal
Synes godt om
Slettet bruger
15. juli 2004 - 14:02#8
En løsning kunne være: decode(sign(sysdate-to_date(substr(cprnr,1,6),'DDMMRR')),-1,to_date(substr(cprnr,1,4)||'19'||substr(cprnr,5,2),'DDMMYYYY'),to_date(substr(cprnr,1,6),'DDMMRR'))
- dog vil du altid have problem med folk over 100 år!
nu er der ikke så mange personer, som er over 100 år, så det går nok :-)
Synes godt om
Slettet bruger
15. juli 2004 - 14:22#10
Hvis du bare spørger om trunc(sysdate/365) >= 18, vil du få et problem med personer som har fødselsdag i morgen.
En løsning kunne være: trunc((sysdate-dato)/365)- decode(sign(to_char(sysdate,'MM')-to_char(dato,'MM')),0,decode(sign(to_char(sysdate,'DD')-to_char(dato,'DD')),-1,1,0),0)
Hvor "dato" er dir cprnr. omregnet til en dato efter før nævnte princip.
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.