SQL Server vraag: hoe veld met string -031168 om te zetten naar datum veld?

Status
Niet open voor verdere reacties.

vvanasperen

Gebruiker
Lid geworden
9 mrt 2009
Berichten
68
Dag mensen,

De vraag is dus ik heb een veld in een database waarin de datums als een string staan, dus bijvoorbeeld: -031168

Ik wil dit omzetten naar een juiste datum, zodat ik er in de toekomst mee zou kunnen gaan rekenen. Ik heb al een aantal dingen met cast en convert geprobeerd, maar het lukt van geen kanten...

Vandaar nu dan ook deze vraag hier op het Helpmij forum! Alvast enorm bedankt voor eventuele informatie waar ik dit kan vinden of... een directe oplossing...

Met vriendelijke groet,

Vincent
 
Ik zou ook geen idee hebben hoe ik dat getal omzet naar een datum, laat staan dat een computer dat snapt...

Gebruik gewoon een normaal veld-type wat bedoelt is om datums op te slaan?
 
Dag Thadin,

Ik zou ook niets liever willen, maar het is een voldongen feit dat er één databaseveld zo in de database staat. Ik kan daar zelf database-gewijs niets aan veranderen... Wat ik wel zou kunnen doen is op één of andere manier zorgen dat ik alleen de getallen over houd en daar dan een datum van maak binnen een query. Ik ga de output van die query namelijk als input gebruiken in een ander programma...

Maar in ieder geval wel bedankt voor je reactie...

Groeten Vincent
 
Ik heb nu in ieder geval gevonden hoe ik -031168 moet omzetten in 031168! Namelijk met

right(rtrim(niDbMain.IdNo),6)...

Nu nog een datumveld van maken, dus... Ga weer verder puzzelen...
 
Laatst bewerkt:
Als je toegang hebt tot de database kun je ook gebruik maken van een scriptje in bijv. PHP om de datums te wijzigen.

Ik hoop alleen van harte dat dit systeem geen datums heeft na 1999 want ik vermoed dat die er niet goed in zouden komen.
 
Het is ons (Simon en mij) alsnog gelukt! Maar inderdaad alleen omdat we zeker weten dat de data ná 1900 en voor 2000 zijn... Zonder de toevoeging '19' komen er toekomstige jaartallen te staan!

CONVERT(datetime,'19'+substring(niDbMain.IdNo,6,2)+substring(niDbMain.IdNo,4,2)+substring(niDbMain.IdNo,2,2),105)

Groeten Vincent & Simon
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan