Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Convertir Fecha Varchar a Date

Estas en el tema de Convertir Fecha Varchar a Date en el foro de Mysql en Foros del Web. Tengo una tabla en MySQL. Fecha Varchar(10) 14/01/1983 23/11/2001 Lo que quiero es convertir esa fecha en date: Fecha Date() 14/01/1983 23/11/2001 Agradeceré sugerencias. Gracias....
  #1 (permalink)  
Antiguo 07/03/2013, 15:45
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Convertir Fecha Varchar a Date

Tengo una tabla en MySQL.

Fecha Varchar(10)
14/01/1983
23/11/2001

Lo que quiero es convertir esa fecha en date:

Fecha Date()
14/01/1983
23/11/2001

Agradeceré sugerencias.
Gracias.
__________________
Todos somos iguales. NO! a la violencia de género.
  #2 (permalink)  
Antiguo 07/03/2013, 16:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Convertir Fecha Varchar a Date

La primera sugerencia es jamás guardar una fecha en un campo VARCHAR. Con eso solamente te vas a ganar problemas a corto plazo.
Las fechas se deben guardar como DATE, DATETIME o TIMESTAMP, pero nunca como VARCHAR, y menos aún con un formato DD/MM/YYYYY.

Ahora tienes que reconvertir esa "cosa" para que siva, para lo cual deberás usar una función denominada STR_TO_DATE().

El principal consejo que te puedo dar es que lo hagas en forma definitiva, es decir:
1) Agrega una columna de tipo DATE.
Código MySQL:
Ver original
  1. ALTER TABLE tabla ADD COLUMN fecha_nueva DATE;
2) Haz un UPDATE masivo para corregir ese defecto:
Código MySQL:
Ver original
  1. UPDATE fecha_nueva = STR_TO_DATE(fecha, '%d/%m/%Y');
3) Verifica el resultado y luego elimina ese campo mal creado.
Código MySQL:
Ver original
  1. ALTER TABLE tabla DROP COLUMN fecha;
4) Renombra el campo como el anterior:
Código MySQL:
Ver original
  1. ALTER TABLE tabla CHANGE fecha_nueva fecha DATE;
5) Y muy importante: modifica tu aplicación para que inserte las fechas en su correcto formato, así como las consultas para que te las muestre como desees.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 07/03/2013, 21:16
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Pregunta Respuesta: Convertir Fecha Varchar a Date

Cita:
Iniciado por gnzsoloyo Ver Mensaje
La primera sugerencia es jamás guardar una fecha en un campo VARCHAR. Con eso solamente te vas a ganar problemas a corto plazo.
Las fechas se deben guardar como DATE, DATETIME o TIMESTAMP, pero nunca como VARCHAR, y menos aún con un formato DD/MM/YYYYY.

Ahora tienes que reconvertir esa "cosa" para que siva, para lo cual deberás usar una función denominada STR_TO_DATE().

El principal consejo que te puedo dar es que lo hagas en forma definitiva, es decir:
1) Agrega una columna de tipo DATE.
Código MySQL:
Ver original
  1. ALTER TABLE tabla ADD COLUMN fecha_nueva DATE;
2) Haz un UPDATE masivo para corregir ese defecto:
Código MySQL:
Ver original
  1. UPDATE fecha_nueva = STR_TO_DATE(fecha, '%d/%m/%Y');
3) Verifica el resultado y luego elimina ese campo mal creado.
Código MySQL:
Ver original
  1. ALTER TABLE tabla DROP COLUMN fecha;
4) Renombra el campo como el anterior:
Código MySQL:
Ver original
  1. ALTER TABLE tabla CHANGE fecha_nueva fecha DATE;
5) Y muy importante: modifica tu aplicación para que inserte las fechas en su correcto formato, así como las consultas para que te las muestre como desees.
Gracias me sirvió bastante.
Tengo una consulta más.
Estoy usando Xampp 1.8.1 y he usado el editor de phpmyadmin
Cómo hago para escribir:
'nombre_tabla' en vez de `nombre_tabla` Se puede?
Gracias.
__________________
Todos somos iguales. NO! a la violencia de género.
  #4 (permalink)  
Antiguo 07/03/2013, 22:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Convertir Fecha Varchar a Date

Se puede, pero no te conviene.
Los apóstrofos (') se usan exclusivamente para cadenas de texto, mientras que los acentos graves se usan precisamente para los nombres de objetos de base de datos, como bases, tablas, columnas, procedures, triggers, contraints, etc.
Si pones el nombre de una tabla entre apóstrofos se puede producir un error de sintaxis.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 08/03/2013, 09:25
Avatar de bandolera  
Fecha de Ingreso: abril-2009
Mensajes: 613
Antigüedad: 15 años
Puntos: 7
Respuesta: Convertir Fecha Varchar a Date

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Se puede, pero no te conviene.
Los apóstrofos (') se usan exclusivamente para cadenas de texto, mientras que los acentos graves se usan precisamente para los nombres de objetos de base de datos, como bases, tablas, columnas, procedures, triggers, contraints, etc.
Si pones el nombre de una tabla entre apóstrofos se puede producir un error de sintaxis.
ok.
GRacias. Voy a corregir mis fechas.
__________________
Todos somos iguales. NO! a la violencia de género.

Etiquetas: date, fecha, sql, tabla, varchar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:20.