こんにちは、阿久梨絵です!
データベースを操作する際、「今日の日付」を使ってデータを抽出・更新するケースは多いです。 SQL では、データベースの種類によって今日の日付を取得する方法が異なります。本記事では、主要なRDBMSごとの使い方を解説します。
1. MySQLでの「今日の日付」の取得
MySQLでは、`CURDATE()` や `NOW()` を使用して今日の日付を取得できます。
今日の日付を取得
SELECT CURDATE();
結果: `2025-05-22`
現在の日時を取得
SELECT NOW();
結果: `2025-05-22 10:30:00`
`CURDATE()` は「日付のみ」、`NOW()` は「日時」を取得できます。用途に応じて使い分けましょう。
今日の日付のデータを検索
SELECT * FROM orders WHERE order_date = CURDATE();
`CURDATE()` を利用することで、注文日が今日の日付であるデータを取得できます。
2. PostgreSQLでの「今日の日付」の取得
PostgreSQLでは、`CURRENT_DATE` や `CURRENT_TIMESTAMP` を使用します。
今日の日付を取得
SELECT CURRENT_DATE;
結果: `2025-05-22`
現在の日時を取得
SELECT CURRENT_TIMESTAMP;
結果: `2025-05-22 10:30:00`
今日の日付のデータを検索
SELECT * FROM transactions WHERE transaction_date = CURRENT_DATE;
`CURRENT_DATE` を使うことで、今日の取引データを取得できます。
3. SQL Serverでの「今日の日付」の取得
SQL Serverでは、`GETDATE()` を使います。
今日の日付を取得
SELECT CONVERT(DATE, GETDATE());
結果: `2025-05-22`
現在の日時を取得
SELECT GETDATE();
結果: `2025-05-22 10:30:00`
今日の日付のデータを検索
SELECT * FROM sales WHERE sale_date = CONVERT(DATE, GETDATE());
`CONVERT(DATE, GETDATE())` を利用すると、日時を日付に変換して検索できます。
4. Oracleでの「今日の日付」の取得
Oracleでは、`SYSDATE` を使用します。
今日の日付を取得
SELECT TRUNC(SYSDATE) FROM dual;
結果: `2025-05-22`
現在の日時を取得
SELECT SYSDATE FROM dual;
結果: `2025-05-22 10:30:00`
今日の日付のデータを検索
SELECT * FROM orders WHERE order_date = TRUNC(SYSDATE);
`TRUNC(SYSDATE)` を利用すると、時刻を削除して日付のみでデータを検索できます。
まとめ
RDBMS | 今日の日付を取得するSQL | 今日のデータを検索 |
---|---|---|
MySQL | SELECT CURDATE(); | WHERE order_date = CURDATE(); |
PostgreSQL | SELECT CURRENT_DATE; | WHERE transaction_date = CURRENT_DATE; |
SQL Server | SELECT CONVERT(DATE, GETDATE()); | WHERE sale_date = CONVERT(DATE, GETDATE()); |
Oracle | SELECT TRUNC(SYSDATE) FROM dual; | WHERE order_date = TRUNC(SYSDATE); |
各データベースで微妙に異なる日付取得方法ですが、基本的な考え方は同じです。
用途に合わせて適切な SQL を選び、データの検索や処理に活用してください!
阿久梨絵でした!