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

[SOLUCIONADO] ordenar campo fecha en mysql

Estas en el tema de ordenar campo fecha en mysql en el foro de Bases de Datos General en Foros del Web. Estimados, Necesito cambiar el orden de un campo fecha_nacimiento el formato lo tiene dd-mm-yyyy y yo necesito que sea yyyy-mm-dd para ingresarlo en un campo ...
  #1 (permalink)  
Antiguo 10/03/2015, 06:40
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
ordenar campo fecha en mysql

Estimados,

Necesito cambiar el orden de un campo fecha_nacimiento el formato lo tiene dd-mm-yyyy y yo necesito que sea yyyy-mm-dd para ingresarlo en un campo de tipo DATE.


Esta es una query de ejemplo esta muy resumida, per0 se entiende que estoy sacando la informacion de otra base y esa base tiene la fecha en dia-mes-año pero yo necesito que se ingrese año-mes-dia.


Código SQL:
Ver original
  1. TRUNCATE basedos.persona;
  2.  
  3. INSERT INTO basedos.persona(persona_id, rut, nombre, fecha_nacimiento)
  4. SELECT persona_id, rut, CONCAT(nombre,' ',apellidos), fechaNac)
  5. FROM base_info.persona
  6. ORDER BY persona_id ASC;
Estare atento a los comentarios.
Saludos.

Última edición por gnzsoloyo; 10/03/2015 a las 08:34
  #2 (permalink)  
Antiguo 10/03/2015, 07:55
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: ordenar campo fecha en mysql

Estimados,

ya lo solucione utilizando concat y substring.

TRUNCATE basedos.persona;

INSERT INTO basedos.persona(persona_id, rut, nombre, fecha_nacimiento)
SELECT persona_id, rut, CONCAT(nombre,' ',apellidos), CONCAT(CONCAT(SUBSTRING(fechaNac, 7),'-',SUBSTRING(fechaNac, 4,2)),'-',SUBSTRING(fechaNac, 1,2))
FROM base_info.persona
ORDER BY persona_id ASC;


Bye.
  #3 (permalink)  
Antiguo 10/03/2015, 08:35
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: ordenar campo fecha en mysql

creo que hubiera sido mas facil aplicar formato a la fecha como se explica en este link:

http://www.w3schools.com/sql/func_date_format.asp

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 10/03/2015, 08:37
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, 5 meses
Puntos: 2658
Respuesta: ordenar campo fecha en mysql

¡Qué ganas de complicarte la vida!

Código MySQL:
Ver original
  1. INSERT INTO basedos.persona(persona_id, rut, nombre, fecha_nacimiento)
  2. SELECT persona_id, rut, CONCAT(nombre,' ',apellidos), STR_TO_DATE(fechaNac, '%d-%m-%Y')
  3. ORDER BY persona_id ASC;

Más allá de eso, te comento que es muy mala idea tener en el mismo campo el nombre y el apellido. Luego querrás hacer busquedas por ambos conceptos separadamente, y no vas a poder o te dará resultados inbconsistentes.

Además, es una pésima idea y práctica usar VARCHAR para las fechas. Es de las peorers decisiones de diseño que puedas tomar.
Las fechas deben ser siempre DATE, DATETIME o TIMESTAMP, y JAMAS ser almacenadas en un formato DD-MM-AAAA.
__________________
¿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 10/03/2015, 09:54
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: ordenar campo fecha en mysql

yaaaa no se pongan tan densos,

La solucion fue para salir del paso, en estos momentos no tengo tiempo para tener siempre la solucion perfecta.

ademas tenia 21 visitas y nadie aportaba nada, la solucion quizas es algo antiestetico para algunos pero sirve.

y la fecha si es DATE por si acaso y lo del nombre y apellido juntos asi lo quisieron yo solo lo hago pelieee pero perdi.

de todos modos gracias por las soluciones usare STR_TO_DATE.



bye.

Etiquetas: campo, ejemplo, fecha, mysql
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 10:36.