• ブログ
  • >
  • [SQLの基本]日付・時間操作入門: 基本的な関数と使い方

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クエリやデータベース操作について詳しく解説していきます。ぜひご期待ください!