ホームページ  >  に質問  >  本文

MySQL はリード関数を使用して日付から日付の終わりまでの期間を計算します

さまざまなユーザー セッション (購読、購読解除、脱退、オンライン) の記録を保存するテーブルがあります。以下のクエリを使用して、各セッションの継続時間を計算できます。 シナリオがあります。ユーザーが「2022 年 5 月 15 日午後 11:00:00」にオンライン セッションを開始し、その後翌日「2022 年 5 月 16 日午後 2:00: 00」に退席したとします。 合計オンライン時間は 3 時間で、最終行の日付は 2022 年 5 月 15 日です。

でもこれが必要なんです 5月15日から「2022年5月15日23時59分59秒」までのオンライン時間は1時間、5月16日から「2022年5月16日0時0分:00秒から2022年5月16日02時00分」までは1時間です。 「:00 AM」、2 時間オンラインです。したがって、応答として、5 月 15 日の合計 3 時間ではなく、5 月 15 日の 1 時間と 5 月 16 日の 2 時間が返されるはずです。

リード関数を使用してcreated_at列から期間を取得していますが、次のcreated_atまでの期間を23:59:59まで計算するようにリード関数を制限する方法はありますか。

これは私の実際のクエリです。最新の MySQL(8) バージョンを使用しています。

リーリー

ここにサンプルデータをいくつか示します。

ああああ

P粉885035114P粉885035114204日前377

全員に返信(1)返信します

  • P粉481815897

    P粉4818158972024-03-29 13:08:37

    動的カレンダーを使用してセッションを日ごとに分割する

    リーリー

    db<>フィドル

    返事
    0
  • キャンセル返事