ラボ > MySQL:日時関連

mysql カラムが年・月で分けているレコードを範囲指定で取得

年月でカラムを分けたレコードがあるけど「2020年6月~2023年3月」のような範囲で取得したい

作成日:2023-12-13, 更新日:2023-12-26

sql

  • 諸々の事情でユニックスタイムにしたい

年・月のカラムが「year」「month」のとき

where UNIX_TIMESTAMP(CONCAT(`year`, "-", LPAD(`month`, 2, "0"), "-01")) BETWEEN UNIX_TIMESTAMP("2020-06-01") AND UNIX_TIMESTAMP("2023-03-31") 

※「CONCAT(`year`, "-", LPAD(`month`, 2, "0"), "-01")」で年月から年月日を作成

ユニックスタイムを使わない場合

where CONCAT(`year`, LPAD(`month`, 2, "0"), "01") BETWEEN "20200601" AND "20230331"