我有一个包含两个“datetime”字段的表格:'eventDate'和'eventHour'。 我尝试按'eventDate'排序,然后按'eventHour'排序。
对于每个日期,我都会有一系列事件,这就是为什么我需要按日期和时间排序的原因。
谢谢!!
我有一个包含两个“datetime”字段的表格:'eventDate'和'eventHour'。 我尝试按'eventDate'排序,然后按'eventHour'排序。
对于每个日期,我都会有一系列事件,这就是为什么我需要按日期和时间排序的原因。
谢谢!!
我不确定你的问题中是否有任何隐含的意义,但标准的做法似乎很适合:
... order by eventDate, eventHour
这可以让你在日期范围内获得小时,例如:
Feb 15
09:00
12:00
17:00
Feb 23
22:00
: :
如果你实际上将这两个字段都设为真实的datetime字段,那么你的模式有问题。你应该有一个日期字段和一个时间或整数字段来表示小时。
你可以将它们合并为单个datetime字段,但在要分开使用它们时,你应该权衡这种做法所带来的每行函数在select语句中的低效率。通常来说,如果你要分别使用它们,最好还是保持字段分离。
如果你确实需要使用每行函数,你可以使用:
date(datetime_column)
time(datetime_column)
提取 datetime
中的日期和时间组件。
select * from my_table order by eventDate DESC, eventHour DESC
eventDate
和eventHour
保存到同一个字段中,如果它们都是DateTime
类型的?为了在当前方案中实现你想要的结果,你可以这样做:SELECT * FROM table
ORDER BY
EXTRACT(YEAR_MONTH FROM eventDate),
EXTRACT(DAY FROM eventDate),
EXTRACT(HOUR FROM eventHour)
请问
select * from my_table order by eventDate, eventHour
无法工作?
SELECT
nv.destac,
DATE_FORMAT(nv.date_nov , '%d-%m-%Y %T') as date_order,
TO_DAYS(nv.date_nov) as days,
TIME_TO_SEC(TIME(nv.date_nov)) as seconds
FROM
newsviews nv
WHERE
nv.active
ORDER BY
nv.destac DESC, days DESC, seconds DESC ;
这是我使用的最佳方法,仅将日期使用函数TO_DAYS(date)转换为天数,并使用函数TIME_TO_SEC(time)将时间转换为秒数。保留html标签。
SELECT
nv.destacar,
DATE_FORMAT(nv.fecha_nov , '%d-%m-%Y %T') as fecha_orden,
TO_DAYS(nv.fecha_nov) as dias,
TIME_TO_SEC(TIME(nv.fecha_nov)) as segundos
FROM
novedades nv
WHERE
nv.activa
ORDER BY
nv.destacar DESC, dias DESC, segundos DESC ;
您可以按照需要使用列表进行排序。它将按照第一个值,然后是第二个值等进行排序。
SELECT *
FROM table
ORDER BY eventDate, eventHour
SELECT *
FROM table
ORDER BY DATE_FORMAT(eventDate, '%d'), DATE_FORMAT(eventHour, '%h')
<?php $sql = "SELECT * FROM posts ORDER BY id DESC?>
这应该可以工作。event_date
,' ',event_time
)) as unixtimestamp
from table_name
Order by unixtimestamp desc;为什么不使用TIMESTAMP来连接这两个字段?
首先,我们需要将eventDate字段转换为DATE类型,为此,我们将使用DATE()函数:
SELECT DATE( eventDate );
接下来,将eventHour转换为TIME,类似于这样:
SELECT TIME( eventHour );
SELECT TIMESTAMP( DATE( eventDate ), TIME( eventHour ) );
是的,但你不需要一个SELECT,而是需要一个ORDER BY,所以一个完整的例子会像这样:
SELECT e.*, d.eventDate, t.eventHour
FROM event e
JOIN eventDate d
ON e.id = d.id
JOIN eventTime t
ON e.id = t.id
ORDER BY TIMESTAMP( DATE( d.eventDate ), TIME( t.eventHour ) );
希望这能帮到你。