MySQLでクエリを実行する場合は、DAYOFYEAR()
を使用できます。 日付から年の日を返す関数。
この関数は1つの引数を受け入れ、 1の間の値を返します。 および366 、引数の日の部分が表す年の曜日によって異なります。
構文
構文は次のようになります:
DAYOFYEAR(date)
date
は、その年の日を返す日付値です。
例
実例を示します。
SELECT DAYOFYEAR('2019-01-01') AS 'Date 1', DAYOFYEAR('2019-12-31') AS 'Date 2';
結果:
+--------+--------+ | Date 1 | Date 2 | +--------+--------+ | 1 | 365 | +--------+--------+
この例では、適切な効果を示すために、この関数を2つの異なる日付に2回実行します。1つは年の初め、もう1つは年の終わりです。
DAYOFYEAR()とDAYOFMONTH()
DAYOFYEAR()
の違いを示す例を次に示します。 およびDAYOFMONTH()
機能。
SET @date = '2019-10-03'; SELECT @date, DAYOFMONTH(@date) AS 'Day of Month', DAYOFYEAR(@date) AS 'Day of Year';
結果:
+------------+--------------+-------------+ | @date | Day of Month | Day of Year | +------------+--------------+-------------+ | 2019-10-03 | 3 | 276 | +------------+--------------+-------------+
DAYOFMONTH()
関数は1の間の値を返します および31 (または 0 月の日を表すゼロデイ部分のある日付の場合)。 1にリセットされます 毎月初めに。
DAYOFYEAR()
一方、関数は 1の間の値を返します および366 。 1にリセットされます 毎年の初めに。
データベースの例
DAYOFYEAR()
の使用例を次に示します。 データベースにクエリを実行する場合:
USE sakila; SELECT payment_date AS 'Date/Time', DAYOFYEAR(payment_date) AS 'Day of Year' FROM payment WHERE payment_id = 1;
結果:
+---------------------+-------------+ | Date/Time | Day of Year | +---------------------+-------------+ | 2005-05-25 11:30:37 | 145 | +---------------------+-------------+
現在の日付/時刻
これは、現在の日時から日の部分を抽出する例です(NOW()
を使用して返されます 関数)。
SELECT NOW(), DAYOFYEAR(NOW());
結果:
+---------------------+------------------+ | NOW() | DAYOFYEAR(NOW()) | +---------------------+------------------+ | 2018-06-26 08:23:04 | 177 | +---------------------+------------------+
これを行う別の方法は、CURDATE()
を使用することです。 関数。日付のみを返します(時刻は返しません)。
SELECT CURDATE(), DAYOFYEAR(CURDATE());
結果:
+------------+----------------------+ | CURDATE() | DAYOFYEAR(CURDATE()) | +------------+----------------------+ | 2018-06-26 | 177 | +------------+----------------------+