MySQL按日期排序(M D,Y,H:M:S是\ pm)

时间:2012-06-13 21:30:01

标签: mysql date

我几个小时都在忙着尝试不同的日期订购方式。我希望有一个strtotime(字段)可以做我需要的。

我已经尝试过乱用UNIX_TIMESTAMP,STR_TO_DATE而且我无法理解这一点。

我试图将这些按顺序排列如下:

June 13, 2012, 4:45:28 pm
May  31, 2012, 10:41   am
June 12, 2012, 6:40:34 pm
June 06, 2012, 3:05:22 am
June 10, 2012, 7:59:31 pm

我尝试过一系列不同的方法,这是我一直在努力的最新方法......

SELECT name,lastonline FROM `users` ORDER BY STR_TO_DATE(UPPER(lastonline),
       '%M %d,%Y, %H:%i:%s') DESC

似乎这是我能得到的尽可能接近,并没有考虑到“AM”或“PM”。我已经尝试在最后添加%p,但出于某种原因,就好像UPPER根本没有做任何事情。我也尝试过使用%r。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

MySQL docs说,12小时时间和上午/下午的构造应该被解析为一个%r,而不是%H:%i:%s %p

虽然我认为这是一种错误,但它确实有效。

答案 1 :(得分:0)

您可以使用HH24来获得完整的小时数。