SQL で「今日の日付」を扱う方法とは?

こんにちは、阿久梨絵です!
データベースを操作する際、「今日の日付」を使ってデータを抽出・更新するケースは多いです。 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今日のデータを検索
MySQLSELECT CURDATE();WHERE order_date = CURDATE();
PostgreSQLSELECT CURRENT_DATE;WHERE transaction_date = CURRENT_DATE;
SQL ServerSELECT CONVERT(DATE, GETDATE());WHERE sale_date = CONVERT(DATE, GETDATE());
OracleSELECT TRUNC(SYSDATE) FROM dual;WHERE order_date = TRUNC(SYSDATE);

各データベースで微妙に異なる日付取得方法ですが、基本的な考え方は同じです。
用途に合わせて適切な SQL を選び、データの検索や処理に活用してください!
阿久梨絵でした!

上部へスクロール
Verified by MonsterInsights