MariaDBには、日付/時刻の値からさまざまな日付と時刻の部分を抽出できるようにするいくつかの関数があります。これらを使用して、必要に応じて各日付/時刻コンポーネントを独自の列に分割できます。
以下は、MariaDBの日付値から年、月、日を抽出する3つの方法です。
YEAR() 、MONTH() 、およびDAY() 機能
YEAR() 、MONTH() 、およびDAY() 関数は、日付または日時の値からそれぞれ年、月、および日を抽出します。
これらの関数を使用して、各日付コンポーネントを独自の列に返す例を次に示します。
SELECT
YEAR('2025-08-30') AS "Year",
MONTH('2025-08-30') AS "Month",
DAY('2025-08-30') AS "Day"; 結果:
+------+-------+------+ | Year | Month | Day | +------+-------+------+ | 2025 | 8 | 30 | +------+-------+------+
DAY() 関数は実際にはDAYOFMONTH()の同義語です 、したがって、どちらも同じ結果を返します。
WEEKDAY()もあります 関数、DAYOFWEEK() 関数、DAYOFYEAR() 関数、およびDAYNAME() 関数。それぞれがその日の異なる表現を返します。
さらに、MONTHNAME()があります 数値ではなく月の名前を返す関数。
これらの関数を含む別の例を次に示します。
SELECT
YEAR('2025-08-30') AS "YEAR",
MONTH('2025-08-30') AS "MONTH",
MONTHNAME('2025-08-30') AS "MONTHNAME",
DAY('2025-08-30') AS "DAY",
DAYOFMONTH('2025-08-30') AS "DAYOFMONTH",
WEEKDAY('2025-08-30') AS "WEEKDAY",
DAYOFWEEK('2025-08-30') AS "DAYOFWEEK",
DAYOFYEAR('2025-08-30') AS "DAYOFYEAR",
DAYNAME('2025-08-30') AS "DAYNAME"; 結果(垂直出力を使用):
YEAR: 2025
MONTH: 8
MONTHNAME: August
DAY: 30
DAYOFMONTH: 30
WEEKDAY: 5
DAYOFWEEK: 7
DAYOFYEAR: 242
DAYNAME: Saturday
WEEK()などの関数を使用することもできます 週番号を返すには、QUARTER() 四半期を返す。
例:
SELECT
WEEK('2025-08-30') AS "Week",
QUARTER('2025-08-30') AS "Quarter"; 結果:
+------+---------+ | Week | Quarter | +------+---------+ | 34 | 3 | +------+---------+
WEEK() 関数は、モードを指定できる2番目の引数を受け入れます。これにより、実際の日付に応じて、結果の週数が変わる可能性があります。 WEEK()の方法をご覧ください 詳細と例については、MariaDBで動作します。
EXTRACT() 機能
EXTRACT() 関数を使用すると、日付/時刻の値から指定された単位を抽出できます。したがって、これを使用して、日付から年、月、日を抽出できます(必要に応じて週と四半期も抽出できます)。
例:
SELECT
EXTRACT(YEAR FROM '2023-03-12') AS "Year",
EXTRACT(MONTH FROM '2023-03-12') AS "Month",
EXTRACT(DAY FROM '2023-03-12') AS "Day",
EXTRACT(WEEK FROM '2023-03-12') AS "Week",
EXTRACT(QUARTER FROM '2023-03-12') AS "Quarter"; 結果:
+------+-------+------+------+---------+ | Year | Month | Day | Week | Quarter | +------+-------+------+------+---------+ | 2023 | 3 | 12 | 11 | 1 | +------+-------+------+------+---------+
DATE_FORMAT() 機能
DATE_FORMAT() 関数を使用すると、フォーマット文字列に基づいて日付または日時の値をフォーマットできます。フォーマット文字列は、日付/時刻のフォーマット方法を指定します。
したがって、この関数を使用して、日付から年、月、日、および週を返すことができます。
例:
SELECT
DATE_FORMAT('2035-12-08', '%Y') AS "Year",
DATE_FORMAT('2035-12-08', '%m') AS "Month",
DATE_FORMAT('2035-12-08', '%d') AS "Day",
DATE_FORMAT('2035-12-08', '%U') AS "Week"; 結果:
+------+-------+------+------+ | Year | Month | Day | Week | +------+-------+------+------+ | 2035 | 12 | 08 | 48 | +------+-------+------+------+
日付部分ごとにいくつかの可能なフォーマット指定子があります。提供される実際のフォーマット指定子に応じて、各日付部分は異なる値を返すことができます。たとえば、%Mを使用して完全な月の名前を返すことができます %mの代わりに 。
DATE_FORMAT()で使用できるフォーマット文字列/指定子の完全なリストについては、MariaDBフォーマット文字列を参照してください。 。