Saltar al contenido

MySql – Ordenar por fecha y luego por hora

La guía paso a paso o código que verás en este post es la resolución más eficiente y válida que encontramos a tu duda o dilema.

Solución:

No estoy seguro de si hay algún significado oculto en su pregunta, pero la forma estándar de hacerlo parece encajar:

... order by eventDate, eventHour

Eso te da horas dentro de fechas, como:

Feb 15
    09:00
    12:00
    17:00
Feb 23
    22:00
    : :

Si realmente tiene esos dos campos como realdatetime campos, su esquema está jodido. deberías tener un date campo para la fecha y un time o campo integral para la hora.

pudo combinar ambos en uno solo datetime pero debe equilibrar eso con las ineficiencias de hacer funciones por fila en su select declaraciones si desea separarlas. Por lo general, es mejor mantener los campos separados si los va a usar de manera distinta.

Si usted hacer tiene que usar funciones por fila, puede usar:

date(datetime_column)
time(datetime_column)

para extraer solo el date y time componentes de un datetime.

Si desea enumerar los datos como la última fecha del evento primero, si existen registros de la misma fecha, los datos se ordenarán por hora, es decir, la última hora primero.

Puedes probar de la siguiente manera

select * from my_table order by eventDate DESC, eventHour DESC

¿Por qué no guardar tanto el eventDate y eventHour en el mismo campo si ambos son DateTime ?

Para obtener lo que desea con el esquema actual, puede hacer esto:

SELECT * FROM table 
  ORDER BY 
    EXTRACT(YEAR_MONTH FROM eventDate),
    EXTRACT(DAY FROM eventDate),
    EXTRACT(HOUR FROM eventHour)

valoraciones y comentarios

Si para ti ha sido de utilidad este artículo, sería de mucha ayuda si lo compartieras con otros juniors de este modo nos ayudas a dar difusión a nuestro contenido.

¡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 *