Saltar al contenido

Cambie VARCHAR a DATE en MySQL

Bienvenido a proyecto online, ahora hallarás la resolución que buscas.

Solución:

Utilizar str_to_date() para manejar la conversión.

str_to_date('2016-12-4', '%Y-%m-%d'); 

SELECT CAST('2016-12-4' AS DATE); –> 2016-12-04así que no necesitas str_to_date.

Agregaría una nueva columna para la fecha (ALTER TABLE .. ADD COLUMN ..); UPDATE para establecer la nueva columna. Luego corrija manualmente cualquier valor realmente desordenado. Finalmente DROP COLUMN y RENAME COLUMN;

ORDER BY a VARCHAR que contiene una fecha puede dar lugar a respuestas incorrectas. (Ene y Nov pueden confundirse). Las pruebas para fechas específicas pueden fallar. (Falta el 0 inicial.)

E indexar la columna FECHA hará que ciertas consultas sean más rápidas.

Cambiar la columna VARCHAR a una columna DATE tampoco es un problema.

Tabla de prueba y datos

CREATE TABLE test.t1( `date_start` VARCHAR(20) ); 
INSERT INTO test.test1 VALUES('2016-1-5');
INSERT INTO test.test1 VALUES('2016-1-5');
INSERT INTO test.test1 VALUES('2016-12-5');
INSERT INTO test.test1 VALUES('2016-12-6');

Seleccione el resultado de la consulta.

SELECT * FROM test.test1

date_start  
------------
2016-1-5    
2016-1-5    
2016-12-5   
2016-12-6   

Cambie la columna VARCHAR a FECHA

ALTER TABLE test.test1 CHANGE date_start date_start DATE NULL;

Seleccione el resultado de la consulta.

SELECT * FROM test.test1 

date_start  
------------
2016-01-05  
2016-01-05  
2016-12-05  
2016-12-06  

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *