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.
Tú 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.