0

我一直在搞砸这几个小时,尝试按日期排序的不同方式。我希望有一个 strtotime(field) 可以满足我的需要。

我试过弄乱 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。

有任何想法吗?

4

2 回答 2

1

MySQL文档说,应将 12 小时时间和 AM/PM 的构造解析为%r一体,而不是%H:%i:%s %p.

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

于 2012-06-13T21:41:08.007 回答
0

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

于 2012-06-13T21:44:05.330 回答