2

次の日程を予定しています (今日が 2012 年 8 月 24 日であると仮定します)。

2012 年 12 月 1 日 2012 年
11 月 1 日 2012 年
6 月 1 日 2012 年
6 月 30 日

次の方法で:

2012 年 11 月 1 日 2012 年
12 月 1 日 2012 年
6 月 30 日 2012 年
6 月 1 日

これは、まだ発生していないイベントを最初に表示し、最も近いものから最も遠いものへ、次に過去のイベントを最も近いものから最も遠いものへと表示する方法です。

テーブル構造は次のようになります。

ID   name    event_date
1    Test    1351742400  # All dates are Unix Time
2    Test2   1354338000
4

1 に答える 1

3
SELECT ID, name, event_date
FROM yourtable
ORDER BY event_date < UNIX_TIMESTAMP(), ABS(UNIX_TIMESTAMP() - event_date)

オンラインで動作することを確認してください: sqlfiddle

于 2012-08-24T23:33:49.537 に答える