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

Ordenar campo de fecha con formato date

Estas en el tema de Ordenar campo de fecha con formato date en el foro de Mysql en Foros del Web. Hola En mi bd estoy guardando la fecha con el siguiente formato Código PHP: date ( 'l jS, F Y, h:i A' );  y en mysql queda de la siguiente ...
  #1 (permalink)  
Antiguo 30/05/2011, 09:53
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
Pregunta Ordenar campo de fecha con formato date

Hola

En mi bd estoy guardando la fecha con el siguiente formato
Código PHP:
date('l jS, F Y, h:i A'); 
y en mysql queda de la siguiente forma:

Wednesday 4th, May 2011, 05:44 PM

Pero quiero ordenar de forma descendiente pero lo q me hace es tomar la primer letra, como si fuera una oración

¿Como puedo ordenarlo?

De antemano les agradezco

Saludos
  #2 (permalink)  
Antiguo 30/05/2011, 09:58
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: Ordenar campo de fecha con formato date

Las fechas con hora se deben almacenar en columnas de tipo DATETIME o TIMESTAMP, y respetando el formato "aaaa-mm-dd hh:mm:ss", lo que daría la fecha "2011-05-04 17:44:00" en tu ejemplo.
¿Qué tipo de columna estás usando y cómo necesitas que la devuelva?
__________________
¿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 30/05/2011, 10:01
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ordenar campo de fecha con formato date

Guarda las fechas sin formato alguno, es decir con el de fecha por omision de mysql

2011-05-30 18:00:00

eso te permitira ordenar (el campo debe ser DateTime).

En el momento de obtener y mostrar datos los puedes formatear como quieras

SELECT DATE_FORMAT(fecha,'l jS, F Y, h:i A') FROM tutabla ORDER by fecha;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 30/05/2011 a las 10:02 Razón: otra vez!!!
  #4 (permalink)  
Antiguo 30/05/2011, 10:09
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Ordenar campo de fecha con formato date

Gracias por sus prontas respuestas

Estoy usando varchar por que deseo que los resultados muestre el dia que se hizo el cambio (para comodidad del usuario), pero desconocia que se podia dar formato aunque se guardara con DateTime

Ahora mi pregunta es si hay alguna manera de convertir mis fechas?
Código MySQL:
Ver original
  1. Wednesday 23rd, March 2011, 10:09 AM
al formato de DateTime como el que menciona quimfv y gnzsoloyo


Gracias nuevamente
  #5 (permalink)  
Antiguo 30/05/2011, 10:13
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: Ordenar campo de fecha con formato date

Poder, mas o menos se puede, pero con ese formato... No lo he intentado.
Se supone que usando STR_TO_DATE() se puede.
Hay que hacer algunas pruebas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 30/05/2011, 11:47
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Ordenar campo de fecha con formato date

Hola

Hice unas pruebas pero por mas que intente con la funcion de STR_TO_Date() no pude convertir las fechas me salia en blanco o numeros extraños, creo que me tocara cambiar a mano las fechas
y Probe la funcion de DATE_FORMAT y me funciono muy bien

Código MySQL:
Ver original
  1. SELECT DATE_FORMAT('2011-05-16 10:21:36','%W  %e %M %Y %h:%i:%s %p') FROM descargas_bd_pruebas

Gracias por su ayuda
  #7 (permalink)  
Antiguo 30/05/2011, 12:25
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: Ordenar campo de fecha con formato date

El formato a usar tiene que ser exactamente y hasta la última coma el mismo que está en el campo, o te dará NULL. En tu caso, la hora no está almacenada con segundos, por lo que no debe ir.
Esto da resultado:
Código MySQL:
Ver original
  1. mysql> SELECT STR_TO_DATE('Wednesday 4th, May 2011, 05:44 PM', '%W %D, %M %Y, %l:%i %p') Fecha;
  2. +---------------------+
  3. | Fecha               |
  4. +---------------------+
  5. | 2011-05-04 17:44:00 |
  6. +---------------------+
  7. 1 row in set (0.00 sec)

Como ya te dije, esta función es muy estricta. Esto es lo que pasa si le eliminas una coma:
Código MySQL:
Ver original
  1. mysql> SELECT STR_TO_DATE('Wednesday 4th, May 2011, 05:44 PM', '%W %D %M %Y, %l:%i %p') Fecha;
  2. +-------+
  3. | Fecha |
  4. +-------+
  5. | NULL  |
  6. +-------+
  7. 1 row in set, 1 warning (0.00 sec)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 30/05/2011, 12:38
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Ordenar campo de fecha con formato date

Tienes toda la razón y efectivamente me fallaban las comas

Con esta funcion definititivamente me ahorro mucho tiempo, mil gracias!!!
  #9 (permalink)  
Antiguo 30/05/2011, 12:42
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: Ordenar campo de fecha con formato date



Nunca te olvides que todo lo que es representación de datos se resuelve o en la aplicación, o en la consulta, pero los datos se tienen que guardar en su tipo natural.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 30/05/2011, 12:45
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Ordenar campo de fecha con formato date

Ok gracias por el consejo :)

Y definitivamente de los errores se aprende jeje

Etiquetas: date, fecha, formato, campos
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 13:12.