View Full Version : [MySQL][phpMyAdmin] Convertire colonna da VARCHAR a DATE
robertino_salemi
08-02-2016, 23:14
Ciao a tutti,
attualmente ho una tabella 'news' contenente una colonna di 'data' di
Tipo > VARCHAR(15)
Null > NO
i record in essa memorizzati sono del tipo 09/02/2015
Vorrei convertire tale colonna senza però perdere i campi già valorizzati.
Se provo a modificare il TIPO tutti vengono settati a 0000-00-00
Come risolvere?
Grazie.
robertino_salemi
09-02-2016, 13:10
Grazie.
Potrei semplicemente
1) creare una colonna di tipo DATE con il nome TMP
2) eseguire l'update con i record della colonna gia' esistente
3) eliminare la colonna esiste
4) rinominare TMP con il nome della vecchia colonna
Vedo di integrare la tua soluzione per il punto 2 cosi da eseguire l'update di tutti i record dalla vecchia colonna di tipo VARCHAR alla nuova di tipo DATE senza ovviamente alterare i valori.
Grazie.
magari potresti sfruttare il php modificando la data in yyyy-mm-gg e poi rimettendola facendo un update :)
robertino_salemi
10-02-2016, 12:44
Potrebbe essere un'altra soluzione.
Vedo di testare il tutto e postare qui la strada corretta! :)
robertino_salemi
11-02-2016, 23:51
Risolto, ecco qui la soluzione
ALTER TABLE myTable ADD data_tmp DATE NOT NULL AFTER data
UPDATE myTable SET data_tmp = str_to_date(data, '%d/%m/%Y')
ALTER TABLE myTable DROP data
ALTER TABLE myTable CHANGE data_tmp data DATE NOT NULL
Praticamente ho
1) creata una tabella temporanea DATA_TMP
2) eseguito l'update dei dati secondo lo standard preferito
3) ho cancellato la colonna 'sorgente'
4) ho rinominato la colonna con il suo nome originale
Grazie a tutti.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.