Toon posts:

[MySQL] VARCHAR veld omzetten naar DATE veld

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een MySQL database gemaakt toen ik nog niet echt op de hoogte was van Date velden enzo. Echter nu moet ik mijn VARCHAR datum veld omzetten naar een DATE datum veld.
Opzich geen probleem ware het niet dat DATE de standaard format yyyy-mm-dd heeft en ik alles in mijn varchar kolom als mm-dd-yyyy heb...

oftewel

oude tabel
datum verchar(10)
inhoud: 21-04-2002

wordt:

nieuwe tabel
datum date
inhoud: 2021-04-02

Hoe kan ik dit fatsoenlijk omzetten? Ik heb heel de MySQL site al doorgespit maar niks gevonden.

Bedankt alvast,

Dennis

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 13:28

Hu9o

Schokkend

Maar gewoon een progie die alle records door loopt, de datum uitleest. In je programma zorg je ervoor dat de datum goed gezet wordt. En doe je een update.

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


Verwijderd

Je kan ook in een query werken met 'SUBSTRING(str,pos,len)' om de losse delen van de datum in de juiste volgorde te zetten, om daarna er mer een CASt het juiste type van te maken.

Succes :)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Wat ik zou doen is een nieuw veld ernaast aanmaken en een UPDATE over de tabel gooien die globaal dit doet:
pseudo
code:
1
2
3
4
5
6
7
8
update
   tabel
set
   veldnieuw=concat(
       substring(veldoud,jaargedeelte),'-',
       substring(veldoud,maandgedeelte),'-',
       substring(veldoud,daggedeelte)
   );

Dat zou wel moeten werken.
Zie http://www.mysql.com/doc/en/String_functions.html voor meer info

edit: de helft vergeten :+
Dan het oude veld verwijderen, en het nieuwe veld renamen naar de naam van het oude veld.

edit:
wat MrX zegt, dus :+
Heb ook ff topictitle aangepast

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

kolom toevoegen, vervolgens iets in de richting van update table set kolomNieuweDatum= substring(kolomOuwedatum,7,4)+"-"+substring(kolomOuwedatum,4,2)+"-"+substring(kolomOuwedatum(1,2).

Vervolgens ouwe kolom verwijderen en nieuwe kolom renamen.

Not hard, methinks.
edit:
Wat drm zegt, dus :+


Journalism is printing what someone else does not want printed; everything else is public relations.


Verwijderd

Topicstarter
Bedankt allemaal, dit werkte perfect:

update
oudoffertes
set
datum2=concat(
substring(datum,7,4),'-',
substring(datum,4,2),'-',
substring(datum,1,2)
);
Pagina: 1