最初Giedrius:
私は、結果の3ヶ月を返すクエリを持っています:
SELECT *
FROM table
WHERE
DATE(created) >= DATE(NOW() - INTERVAL 3 MONTH)
ORDER BY created
私は現在、これまでに3ヶ月を示したいと思います。今日は30/03/2020ですので、それが表示される必要があります。
- March 2020 (current month)
- February 2020 (-1 month)
- January 2020 (-2 months)
- December 2019 (-3 months)
どのように私は私のクエリは、MySQLでそれを達成変更することができますか?
GMB:
あなたは、次のフィルタを使用することができます。
created >= date_format(current_date, '%Y-%m-01') - interval 3 month
理論的根拠:
date_format(current_date, '%Y-%m-01')
あなたの現在の月の初めを与えますあなたは、検索期間の開始を取得することから3ヶ月をsubstractすることができます
これは、日付関数を必要とする条件を使用するよりも効率的になります。フィルタは、変換せずに、保存された日時に直接適用されることに注意してください。