|
|
|
|
Strumenti |
08-02-2016, 23:14 | #1 |
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1016
|
[MySQL][phpMyAdmin] Convertire colonna da VARCHAR a DATE
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. |
09-02-2016, 13:10 | #2 |
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1016
|
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. |
10-02-2016, 12:19 | #3 |
Junior Member
Iscritto dal: Jan 2016
Messaggi: 25
|
magari potresti sfruttare il php modificando la data in yyyy-mm-gg e poi rimettendola facendo un update
|
10-02-2016, 12:44 | #4 |
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1016
|
Potrebbe essere un'altra soluzione.
Vedo di testare il tutto e postare qui la strada corretta! |
11-02-2016, 23:51 | #5 |
Senior Member
Iscritto dal: Apr 2009
Città: Aci Catena (CT)
Messaggi: 1016
|
Risolto, ecco qui la soluzione
Codice:
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 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. |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:56.