1. ホーム
  2. mysql

[解決済み] MySQLで週単位でグループ化する方法は?

2022-02-01 09:24:58

質問

Oracleのテーブルサーバーには、組み込み関数があります。 TRUNC(timestamp,'DY') . この関数は、任意のタイムスタンプを前日曜日の午前0時に変換します。MySQL でこれを行う最良の方法は何ですか?

また、オラクルでは TRUNC(timestamp,'MM') を使用すると、タイムスタンプが発生した月の最初の日の深夜に変換できます。MySQL では、これは簡単です。

TIMESTAMP(DATE_FORMAT(timestamp, '%Y-%m-01'))

しかし、この DATE_FORMAT のトリックは、何週間も通用しません。私が意識しているのは WEEK(timestamp) しかし、私は本当に年内の週番号を必要としません。

どのように解決するのですか?

ちょっと面倒だけど、これでいいんだ。

FROM_DAYS(TO_DAYS(TIMESTAMP) -MOD(TO_DAYS(TIMESTAMP) -1, 7))

また、ビジネスルールで週の始まりが月曜日になっている場合は -1 から -2 .


編集

何年か経って、ようやくこれを書き上げることができました。 https://www.plumislandmedia.net/mysql/sql-reporting-time-intervals/