MySQLで直近〇日、〇ヶ月、〇年以内のデータを検索する方法
他社が作成されたSQL文を見ているとDATE_ADDという使ったことの無い関数が見受けられた。内容的には直近〇日のデータを検索する、といったSQL文みたい。自分の場合だとPHP側で〇日前の日付を計算して「ymd >= yyyy-mm-dd」みたいに書くが、DATE_ADD関数を使った方がスマートそう。以下に使い方のメモ。
リファレンス
https://dev.mysql.com/doc/refman/8.0/ja/date-and-time-functions.html#function_date-add
データベース構造
mysql> SHOW COLUMNS FROM `test_table`; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | NULL | | | ymd | date | NO | | NULL | | +-------+--------------+------+-----+---------+----------------+
ソースコード
10日以内
SELECT * FROM `test_table` WHERE `ymd` >= DATE_ADD(NOW(), INTERVAL -10 DAY);
1ヶ月以内
SELECT * FROM `test_table` WHERE `ymd` >= DATE_ADD(NOW(), INTERVAL -1 MONTH);
1年以内
SELECT * FROM `test_table` WHERE `ymd` >= DATE_ADD(NOW(), INTERVAL -1 YEAR);
関連記事
-
-
エックスサーバーでMySQLのサイズに注意
エックスサーバーで自動更新のログをMySQLに保存するようなシステムを動かしてい ...
-
-
MySQLにてSELECT時にdate型のカラムから年齢を計算し取得する方法
MySQLにdate型のカラムに誕生年月日が格納されており、そこから年齢を計算し ...
-
-
MySQLでカラム内容によって条件分岐させたい場合の対応方法
MySQLでカラムの内容によって条件を分岐させたかった。またPHPで処理するので ...
-
-
MySQLとPHPの「image-comparator」ライブラリを使用して類似画像検索を実装する方法
先日PHPで画像を比較して類似度を算出する「image-comparator」ラ ...
-
-
MySQLにてdate型のカラムから曜日を計算し表示する方法
MySQLにてdateもしくはdatetime型のデータを取り出して曜日もあわせ ...