SQLの基本:日付・時間操作入門: 基本的な関数と使い方
投稿日:
はじめに
SQLでは、日付や時間のデータを操作するための強力な関数が多数用意されています。これらの関数を使用することで、日付の計算やフォーマットの変更、特定の期間に基づいたデータの抽出などが簡単に行えます。今回は、SQLの日付・時間操作の基本的な使い方について解説します。
日付・時間の基本的な関数
CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP
これらの関数は、現在の日付、時間、およびタイムスタンプを取得します。
SELECT
CURRENT_DATE,
CURRENT_TIME,
CURRENT_TIMESTAMP;
DATE_ADD
DATE_ADD関数は、指定した日付に特定の時間間隔を加算します。多くのデータベースで使用できますが、構文が異なることがあります。以下は、MySQLの例です。
DATE_ADD(date, interval)
SELECT DATE_ADD('2024-01-01', INTERVAL 7 DAY) AS new_date;
このクエリは、2024年1月1日に7日間を加算した日付を返します。
DATEDIFF
DATEDIFF関数は、2つの日付の間の差を計算します。こちらも、データベースごとに構文が異なることがあります。以下は、MySQLの例です。
DATEDIFF(end_date, start_date)
SELECT DATEDIFF('2024-01-10', '2024-01-01') AS date_diff;
このクエリは、2024年1月1日から2024年1月10日までの日数を返します。
DATE_FORMAT
DATE_FORMAT関数は、日付を指定した形式にフォーマットします。以下は、MySQLの例です。
DATE_FORMAT(date, format)
SELECT DATE_FORMAT('2024-01-01', '%Y/%m/%d') AS formatted_date;
このクエリは、2024年1月1日の日付を「2024/01/01」の形式にフォーマットして返します。
EXTRACT
EXTRACT関数は、日付や時間の特定の部分を抽出します。
EXTRACT(part FROM date)
SELECT
EXTRACT(year FROM '2024-01-01') AS year,
EXTRACT(month FROM '2024-01-01') AS month,
EXTRACT(day FROM '2024-01-01') AS day;
このクエリは、2024年1月1日の日付から年、月、日を抽出して返します。
日付の計算
日付の加算
DATE_ADD関数を使用して、日付に特定の期間を加算する方法を紹介しましたが、他のデータベースシステムでも類似の関数が使用できます。以下は、MySQLの例です。
SELECT DATE_SUB('2024-01-10', INTERVAL 7 DAY) AS new_date;
このクエリは、2024年1月10日から7日を減算した日付を返します。
特定の期間のデータを抽出する
BETWEEN
BETWEEN演算子を使用して、特定の期間に属するデータを抽出する方法があります。
SELECT
*
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';
このクエリは、2024年1月1日から2024年12月31日までの間に注文された全ての注文を返します。
また、特定の月や年のデータを抽出するEXTRACT関数を使用して、特定の月や年のデータを抽出する方法があります。
SELECT
*
FROM orders
WHERE EXTRACT(month FROM order_date) = 1 AND
EXTRACT(year FROM order_date) = 2024;
このクエリは、2024年1月に注文された全ての注文を返します。
日付フォーマットの変更
STR_TO_DATE
STR_TO_DATE関数は、文字列を日付に変換するために使用されます。以下は、MySQLの例です。
STR_TO_DATE(string, format)
SELECT STR_TO_DATE('2024-01-01', '%d-%m-%Y') AS date;
このクエリは、文字列「2024-01-01」を日付に変換して返します。
まとめ
今回は、SQLの日付・時間操作の基本的な使い方について学びました。これらの関数を使用することで、日付や時間に関するデータの操作や計算が効率的に行えるようになります。次回の記事では、さらに高度なSQLクエリやデータベース操作について詳しく解説していきます。ぜひご期待ください!