1

SQLクエリに関しては少し頭がおかしくて、助けが見つからなかったので、聞いてみようと思いました。

私は現在、2種類のイベントでイベントトラッカー/カレンダースタイルのものに取り組んでいます。1つは標準でXで始まり、Yで終わり、もう1つは「終日」です(つまり、午前12:01に始まり、午後11:59に終わります)。私の問題は、それを適切にソートするためのデータベースクエリです。私がやろうとしているのは、終日のイベントがその日のリストの最後になるようにリターンを取得することです。

たとえば、午後1時、午後2時、終日、明日の午前11時の4つのイベントがある場合、次のようになります。

  • 1:00PMイベント
  • 2:00PMイベント
  • 終日イベント
  • 明日11:00AMイベント

開始日と終了日のUNIXタイムスタンプ(何らかの理由で秒単位)がありますが、現在の試みは

SELECT * FROM table ORDER BY all_day_flag, startTime;

これは、終日のイベントを常に最後に置くため、機能しません。そのため、どこでそれを改良するかについてのヒントをいただければ幸いです。

4

1 に答える 1

1

Unix タイムスタンプとは別に日付と時刻を抽出し、最初の並べ替えオプションとして日付を使用し、その後に終日フラグ、次に時刻を使用する必要があります。

これを試して:

SELECT date(startTime, 'unixepoch') AS startDate,
       time(startTime, 'unixepoch') AS startHour,
       time(endTime,   'unixepoch') AS endHour,
       all_day_flag
  FROM table
  ORDER BY
    startDate, all_day_flag, startHour;
于 2012-04-10T20:56:46.657 に答える