さまざまなユーザー セッション (購読、購読解除、脱退、オンライン) の記録を保存するテーブルがあります。以下のクエリを使用して、各セッションの継続時間を計算できます。 シナリオがあります。ユーザーが「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) バージョンを使用しています。
リーリー
ここにサンプルデータをいくつか示します。ああああ
動的カレンダーを使用してセッションを日ごとに分割する
リーリーdbフィドル