【SQL】前月のデータを取得する方法

データベースから前月のデータを取得する必要性は、多くのビジネスや分析の場面でよくある課題です。この記事では、主要なデータベース(MySQL、PostgreSQL、SQL Server)でのSQLクエリを使用して、効果的に前月のデータを取得する方法を紹介します。

MySQL / MariaDB

MySQLやMariaDBでは、DATE_SUB関数とCURDATE関数を使用して前月のデータを取得できます。

SELECT * 
FROM your_table
WHERE DATE_FORMAT(your_date_column, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m');

PostgreSQL

PostgreSQLでは、CURRENT_DATE関数とinterval演算子を使用して前月のデータを取得できます。

SELECT * 
FROM your_table
WHERE DATE_TRUNC('month', your_date_column) = DATE_TRUNC('month', CURRENT_DATE - interval '1' month);

SQL Server

SQL Serverでは、DATEADD関数とGETDATE関数を使用して前月のデータを取得できます。

SELECT * 
FROM your_table
WHERE DATEADD(month, DATEDIFF(month, 0, your_date_column), 0) = DATEADD(month, DATEDIFF(month, 0, GETDATE()) - 1, 0);