• ブログ
  • >
  • [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_SUB)

DATE_SUB関数を使用して、日付から特定の期間を減算することができます。以下は、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('01-01-2024', '%d-%m-%Y') AS date;

このクエリは、文字列「01-01-2024」(日-月-年形式)を日付に変換して返します。「2024-07-01」のようなYYYY-MM-DD形式の場合は、'%Y-%m-%d'を使用します。

よく使うフォーマット指定子

DATE_FORMATやSTR_TO_DATEで使用する主なフォーマット指定子をまとめます。

%Y - 4桁の年(例: 2024)

%m - 2桁の月(例: 01〜12)

%d - 2桁の日(例: 01〜31)

%H - 24時間制の時(例: 00〜23)

%i - 分(例: 00〜59)

%s - 秒(例: 00〜59)

まとめ

今回は、SQLの日付・時間操作の基本的な使い方について学びました。CURRENT_DATEで現在日付の取得、DATE_ADD/DATE_SUBで日付の加減算、DATEDIFFで日数計算、DATE_FORMATで表示形式の変更、EXTRACTで年月日の抽出ができます。レポート作成や期間指定のデータ抽出で頻繁に使うため、基本パターンを覚えておきましょう。

SheetFlow - 学んだSQLを業務で活かそう

SQLマーケティングアカデミーで身につけたSQLスキル、実務でも使ってみませんか?

SheetFlowは、ExcelファイルをアップロードしてSQLで直接操作できるクラウドサービスです。学んだSELECT文やJOIN、集計関数をそのまま業務データに適用し、手作業の集計を自動化できます。

SheetFlowを無料で試す