1. ホーム
  2. sql

[解決済み] 特定の月にあるすべてのレコードを検索するWHERE句

2022-11-23 08:05:51

質問

ストアド プロシージャに月と年を与えて、その月に発生したすべてのことを返せるようにしたいのですが、月によっては日数などが異なるため、比較することができません。

これを行うための最良の方法は何ですか?年と月に基づいて比較するように依頼すればよいのでしょうか。

ありがとうございます。

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

あなたが探している関数は MONTH(date) . おそらく '年' も使いたいでしょう。

という名前のテーブルがあるとします。 things という名前のテーブルがあり、以下のような感じだとします。

id happend_at
-- ----------------
1  2009-01-01 12:08
2  2009-02-01 12:00
3  2009-01-12 09:40
4  2009-01-29 17:55

を持つすべてのレコードを検索するために実行するとします。 happened_at を持つすべてのレコードを見つけるために実行したいとします。SQLクエリーは次のようになります。

SELECT id FROM things 
   WHERE MONTH(happened_at) = 1 AND YEAR(happened_at) = 2009

というのが返ってきます。

id
---
1
3
4