5

月全体のすべての日付を表示するにはどうすればよいですか。月はクエリのパラメーターです (たとえば、1 から 3 までの月)。このクエリを出力すると、1 月の最初の日付から 3 月の最後の日付までの日付が表示されます。以下のようにプレビューするかもしれません。

2013-01-01
2013-01-02
2013-01-03
..
..
2013-02-28
..
2013-03-31

これについて何か考えがありますか?あなたの助けに感謝します

4

7 に答える 7

4

必要な日付の数よりも多くのエントリを持つテーブルが既にある場合は、これを使用できます。

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;
于 2015-02-11T17:36:03.973 に答える
0
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
于 2013-10-23T08:55:49.130 に答える