MySql - 按日期排序,然后按时间排序

And*_*nda 9 mysql datetime sql-order-by

我有一个包含2个'datetime'字段的表:'eventDate'和'eventHour'.我试图通过'eventDate'然后'eventHour'来订购.

对于每个日期,我将有一个列表事件,所以这就是为什么我将按日期和时间排序.

谢谢!!

pax*_*blo 23

我不确定你的问题中是否有任何隐藏的含义,但这样做的标准方式似乎适合:

... order by eventDate, eventHour
Run Code Online (Sandbox Code Playgroud)

这给了你几个小时的日期,比如:

Feb 15
    09:00
    12:00
    17:00
Feb 23
    22:00
    : :
Run Code Online (Sandbox Code Playgroud)

如果您实际上将这两个字段作为真实 datetime字段,那么您的架构就会搞砸了.您应该有一个date日期time字段和小时的一个或整数字段.

可以将它们组合到一个datetime字段中,但是select如果要将它们分开,则应该在语句中对每行功能的低效率进行平衡.如果要明确地使用它们,通常最好将字段分开.

如果你必须使用每行的功能,你可以使用:

date(datetime_column)
time(datetime_column)
Run Code Online (Sandbox Code Playgroud)

只提取一个datetime组件datetime.


Rom*_* KC 12

如果您想首先将数据列为最新的eventdate,如果存在相同日期的记录,那么数据将按时间排序,即最新时间首先,

你可以尝试如下

select * from my_table order by eventDate DESC, eventHour DESC
Run Code Online (Sandbox Code Playgroud)