PostgreSQL公式ドキュメント:Date/Time Functions
PostgreSQLで「今日」に関連する日付を確認する
PostgreSQLでは、様々な方法で「今日」に関連する日付を取得・比較できます。
方法
- CURRENT_DATE
CURRENT_DATE
は、現在の日付を取得する関数です。
SELECT CURRENT_DATE;
出力例:
2024-04-10
- EXTRACT
EXTRACT
は、日付から特定の部分 (年、月、日など) を抽出する関数です。
SELECT EXTRACT(YEAR FROM CURRENT_DATE);
2024
- DATE_ADD
DATE_ADD
は、日付に指定された期間を加減算する関数です。
SELECT DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY);
2024-04-11
- CASE 式
CASE 式
は、条件に応じて異なる値を返す式です。
SELECT CASE WHEN CURRENT_DATE = '2024-04-10' THEN '今日' ELSE '今日ではない' END;
今日
上記の例は基本的な方法です。より複雑な条件や処理には、他の関数や式を組み合わせることもできます。
- PostgreSQL は、オープンソースのデータベース管理システムです。
- SQL は、データベースを操作するための言語です。
SELECT *
FROM テーブル名
WHERE 列名 = CURRENT_DATE;
例
SELECT *
FROM 顧客情報
WHERE 生年月日 = CURRENT_DATE;
特定の列が「今日」を含む期間内にあるかどうかを確認する
SELECT *
FROM テーブル名
WHERE 列名 BETWEEN DATE_ADD(CURRENT_DATE, INTERVAL -7 DAY) AND CURRENT_DATE;
SELECT *
FROM 注文情報
WHERE 注文日 BETWEEN DATE_ADD(CURRENT_DATE, INTERVAL -7 DAY) AND CURRENT_DATE;
特定の列が「今日」より過去の日付かどうかを確認する
SELECT *
FROM テーブル名
WHERE 列名 < CURRENT_DATE;
SELECT *
FROM 従業員情報
WHERE 退職日 < CURRENT_DATE;
SELECT *
FROM テーブル名
WHERE 列名 > CURRENT_DATE;
SELECT *
FROM イベント情報
WHERE 開催日 > CURRENT_DATE;
特定の列から「今日」までの日数差を計算する
SELECT DATEDIFF(CURRENT_DATE, 列名);
SELECT DATEDIFF(CURRENT_DATE, 納期);
特定の列の日付を「今日」に更新する
UPDATE テーブル名
SET 列名 = CURRENT_DATE
WHERE 条件;
UPDATE 顧客情報
SET 生年月日 = CURRENT_DATE
WHERE 顧客ID = 1;
UPDATE テーブル名
SET 列名 = DATE_ADD(列名, INTERVAL 1 DAY)
WHERE 条件;
UPDATE 注文情報
SET 出荷日 = DATE_ADD(出荷日, INTERVAL 1 DAY)
WHERE 注文ID = 1;
SELECT date_trunc('day', CURRENT_DATE);
2024-04-10
to_char 関数
to_char
関数は、日付を文字列に変換します。
SELECT to_char(CURRENT_DATE, 'YYYY-MM-DD');
2024-04-10
INTERVAL
INTERVAL
は、日付の差を表す型です。
SELECT CURRENT_DATE + INTERVAL 1 DAY;
2024-04-11
PostgreSQL の日付型
PostgreSQL には、日付を表す様々な型があります。
date
型: 年、月、日time
型: 時、分、秒timestamp
型: 年、月、日、時、分、秒
sql postgresql