月全体のすべての日付を表示するにはどうすればよいですか。月はクエリのパラメーターです (たとえば、1 から 3 までの月)。このクエリを出力すると、1 月の最初の日付から 3 月の最後の日付までの日付が表示されます。以下のようにプレビューするかもしれません。
2013-01-01
2013-01-02
2013-01-03
..
..
2013-02-28
..
2013-03-31
これについて何か考えがありますか?あなたの助けに感謝します
必要な日付の数よりも多くのエントリを持つテーブルが既にある場合は、これを使用できます。
SELECT adddate('2013-01-01', @rownum := @rownum + 1) dt FROM my_table
JOIN (SELECT @rownum := -1) r
LIMIT 31;
my_tableには小さなテーブルを選択してください。my_tableに含まれるエントリが多すぎる場合は、 limit を使用して高速化します。
これの基本は、それ自体を自動インクリメントする rownum のようなカウンターを使用することです。日付関数を使用したフィルタリングを使用した、より複雑なクエリ:
SELECT * FROM
(SELECT adddate('2013-01-01', @rownum := @rownum + 1) dt FROM my_table
JOIN (SELECT @rownum := -1) r LIMIT 1000) temp
WHERE MONTH(dt) = 1 AND YEAR(dt) = 2015;
select * from your_table
where month(`date`) between 1 and 3
特定の年に必要な場合は、それを追加する必要があります
select * from your_table
where year(`date`) = 2013
and month(`date`) between 1 and 3