Mysql
 sql >> Datenbank >  >> RDS >> Mysql

DAYOFYEAR() Beispiele – MySQL

Beim Ausführen von Abfragen in MySQL können Sie DAYOFYEAR() verwenden Funktion, um den Tag des Jahres aus einem Datum zurückzugeben.

Diese Funktion akzeptiert ein Argument und gibt einen Wert zwischen 1 zurück und 366 , abhängig davon, für welchen Tag des Jahres der Tagesteil des Arguments steht.

Syntax

Die Syntax lautet wie folgt:

DAYOFYEAR(date)

Wobei date ist der Datumswert, von dem Sie den Tag des Jahres zurückgeben möchten.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

SELECT 
    DAYOFYEAR('2019-01-01') AS 'Date 1',
    DAYOFYEAR('2019-12-31') AS 'Date 2';

Ergebnis:

+--------+--------+
| Date 1 | Date 2 |
+--------+--------+
|      1 |    365 |
+--------+--------+

Um die richtige Wirkung zu demonstrieren, führe ich in diesem Beispiel diese Funktion zweimal an zwei verschiedenen Daten aus – eines am Anfang des Jahres und das andere am Ende des Jahres.

DAYOFYEAR() vs. DAYOFMONTH()

Hier ist ein Beispiel, um den Unterschied zwischen DAYOFYEAR() zu demonstrieren und DAYOFMONTH() Funktionen.

SET @date = '2019-10-03';
SELECT 
    @date,
    DAYOFMONTH(@date) AS 'Day of Month',
    DAYOFYEAR(@date) AS 'Day of Year';

Ergebnis:

+------------+--------------+-------------+
| @date      | Day of Month | Day of Year |
+------------+--------------+-------------+
| 2019-10-03 |            3 |         276 |
+------------+--------------+-------------+

Der DAYOFMONTH() Funktion gibt einen Wert zwischen 1 zurück und 31 (oder 0 für Datumsangaben mit einem Null-Tagesteil), der den Tag des Monats darstellt. Es wird auf 1 zurückgesetzt zu Beginn eines jeden Monats.

Das DAYOFYEAR() Funktion hingegen gibt einen Wert zwischen 1 zurück und 366 . Es wird auf 1 zurückgesetzt zu Beginn eines jeden Jahres.

Ein Datenbankbeispiel

Hier ist ein Beispiel für die Verwendung von DAYOFYEAR() beim Abfragen einer Datenbank:

USE sakila;
SELECT
  payment_date AS 'Date/Time',
  DAYOFYEAR(payment_date) AS 'Day of Year'
FROM payment
WHERE payment_id = 1;

Ergebnis:

+---------------------+-------------+
| Date/Time           | Day of Year |
+---------------------+-------------+
| 2005-05-25 11:30:37 |         145 |
+---------------------+-------------+

Aktuelles Datum/aktuelle Uhrzeit

Hier ist ein Beispiel für das Extrahieren des Tagesteils aus dem aktuellen Datum und der aktuellen Uhrzeit (die mit NOW() zurückgegeben werden Funktion).

SELECT 
    NOW(),
    DAYOFYEAR(NOW());

Ergebnis:

+---------------------+------------------+
| NOW()               | DAYOFYEAR(NOW()) |
+---------------------+------------------+
| 2018-06-26 08:23:04 |              177 |
+---------------------+------------------+

Eine andere Möglichkeit, dies zu tun, ist die Verwendung von CURDATE() Funktion, die nur das Datum (aber nicht die Uhrzeit) zurückgibt.

SELECT 
    CURDATE(),
    DAYOFYEAR(CURDATE()); 

Ergebnis:

+------------+----------------------+
| CURDATE()  | DAYOFYEAR(CURDATE()) |
+------------+----------------------+
| 2018-06-26 |                  177 |
+------------+----------------------+