「YYYY-MM-DD」形式の日付として列の1つを持つテーブルがあります。select を使用して、月単位の範囲のすべてのデータを取得できますか? 2012-01-xx から 2013-04-xx までのすべてのデータが必要だとします。だから私は基本的に以下のようなSQLクエリを探しています:
SELECT * FROM table WHERE date IN BETWEEN '2012-01' AND '2013-04' (INVALID QUERY)
毎月 '01' で始まるため、上記のクエリを変更して開始条件を調整できます。
SELECT * FROM table WHERE date IN BETWEEN '2012-01-01' AND '2013-04' (INVALID QUERY)
今、問題は終了日に付属しています。指定された日付が無効な場合、クエリが失敗するため、月の長さ、うるう年などのすべての要因を考慮して、指定された月の最後の日付を手動で計算する必要があります。だから現在、私はこのようなことをしています:
SELECT * FROM table WHERE date IN BETWEEN '2012-01-01' AND 'VALID_MONTH_END_DATE' (VALID Query)
この有効な終了日の計算を回避する方法があるかどうかを知りたいですか?
明確化
私は翌月の最初の日以上を考えましたが、それでも12月なら翌月は来年の1月になるという論理を適用する必要があります。SQL のみのソリューションが可能かどうか知りたいですか?