Menu
Coddy logo textTech

日付の扱い パート3

CoddyのSQLジャーニー「基礎」セクションの一部。レッスン 33/72。

SQL には、日付を操作およびフォーマットするための便利な関数がいくつか用意されています。一般的な日付関数をいくつか紹介します。

  1. DATE() - 文字列を日付に変換します
  2. STRFTIME() - 指定されたパラメーターに従って日付をフォーマットします
  3. DATE('now') - 現在の日付を取得します:

例えば、文字列を日付に変換します:

SELECT DATE('2023-05-15 13:45:00')
-- 戻り値: 2023-05-15

SELECT DATE('now')
-- 現在の日付を返す

例えば、日付から年、月、日を抽出します:

-- 年を取得
SELECT STRFTIME('%Y', '2023-05-15')
-- 戻り値: 2023

-- 月を取得
SELECT STRFTIME('%m', '2023-05-15')
-- 戻り値: 05

-- 日を取得
SELECT STRFTIME('%d', '2023-05-15')
-- 戻り値: 15

-- 年と日の組み合わせを表示(任意の区切り文字を使用可能)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- 戻り値: 2023:15

-- 代わりにダッシュ区切りを使用
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- 戻り値: 15-05-2023

-- 曜日を取得
SELECT STRFTIME('%w', '2023-05-15')
-- 戻り値: 1(月曜日;日曜日は 0)

一般的な書式指定子:

  • %Y: 年(4桁)
  • %m: 月(01-12)
  • %d: 月の日(01-31)
  • %w: 曜日(0-6、日曜日は0)
  • %H: 時(00-23)
  • %M: 分(00-59)
  • %S: 秒(00-59)

指定子の間には任意の区切り文字(例:-:/)を使用できます。たとえば、STRFTIME('%d-%m-%Y', date)STRFTIME('%d:%m:%Y', date)は、区切り文字が異なるだけで、どちらも日、月、年を組み合わせます。

クエリ内でこれらの関数を組み合わせることができます:

-- 現在の年のすべてのレコードを検索
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')
challenge icon

チャレンジ

簡単

利用可能なテーブルと列:

  • eventsidstartend

次の内容を表示するクエリを書いてください:

  • イベント ID
  • "DD-MM-YYYY" 形式にした開始日。この列を formatted_start と呼びます
  • "DD-MM-YYYY" 形式にした終了日。この列を formatted_end と呼びます
  • 開始日と終了日の間の日数を、最も近い整数に丸めた期間。この列を duration_days と呼びます

start 列の年が 2009 である行だけに絞り込んでください(STRFTIME() は数値ではなく文字列を返します)。

結果を期間の日数の降順で並べ替えてください。

注意:日付間の差を計算するには JULIANDAY(end) - JULIANDAY(start) を使用し、整数に丸めるには ROUND() を使用してください。

自分で試してみよう

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: SQLプレイグラウンド