MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie DAYOFYEAR() in MariaDB funktioniert

In MariaDB DAYOFYEAR() ist eine integrierte Datums- und Uhrzeitfunktion, die den Tag des Jahres von einem bestimmten Datum zurückgibt.

Es akzeptiert ein Argument, nämlich das Datum, aus dem Sie den Tag des Jahres extrahieren möchten.

Es gibt den Tag als Zahl im Bereich 1 zurück zu 366 .

Syntax

Die Syntax lautet wie folgt:

DAYOFYEAR(date) 

Wobei date ist das Datum, aus dem der Tag des Jahres abgerufen werden soll.

Beispiel

Hier ist ein Beispiel:

SELECT DAYOFYEAR('2030-12-25'); 

Ergebnis:

+-------------------------+| TAG DES JAHRES('2030-12-25') |+-------------------------+| 359 |+-------------------------+

Datum/Uhrzeit-Werte

Es funktioniert auch mit datetime-Werten:

SELECT DAYOFYEAR('2030-02-01 10:30:45'); 

Ergebnis:

+----------------------------------------------+| TAG DES JAHRES('2030-02-01 10:30:45') |+-------------------------------- -+| 32 |+---------------------------------+

Zero Days

Null Tage ergeben null .

Beispiel:

SELECT DAYOFYEAR('2030-00-00'); 

Ergebnis:

+-------------------------+| TAG DES JAHRES('2030-00-00') |+-------------------------+| NULL |+-------------------------+

Numerische Daten

Es ist auch möglich, Datumsangaben als Zahl zu übergeben, sofern es als Datum sinnvoll ist.

Beispiel

SELECT DAYOFYEAR(20301125); aus 

Ergebnis:

+---------------------+| TAG DES JAHRES(20301125) |+---------------------+| 329 |+---------------------+

Oder sogar das Folgende (das eine zweistellige Jahreszahl verwendet):

SELECT DAYOFYEAR(301125); 

Ergebnis:

+-------------------+| DAYOFYEAR(301125) |+-------------------+| 329 |+-------------------+

Aber als Date muss es Sinn machen. Folgendes passiert, wenn ich den Tagesteil auf einen ungültigen Tag erhöhe:

SELECT DAYOFYEAR(20300135); aus 

Ergebnis:

+---------------------+| TAG DES JAHRES(20300135) |+---------------------+| NULL |+---------------------+

Andere Trennzeichen

Sie können andere Trennzeichen für das Datum verwenden. MariaDB ist ziemlich nachsichtig, wenn es um Trennzeichen bei Datumsangaben geht. Hier sind einige gültige Beispiele:

SELECT 
    DAYOFYEAR('2030/06/25'),
    DAYOFYEAR('2030,06,25'),
    DAYOFYEAR('2030:06:25'),
    DAYOFYEAR('2030;06!25'); 

Ergebnis (bei vertikaler Ausgabe):

JAHRESTAG('25.06.2030'):176JAHRESTAG('25.06.2030'):176JAHRESTAG('2030:06:25'):176JAHRESTAG('2030;06!25'):176 

Aktuelles Datum

Wir können NOW() übergeben als Datumsargument, um das aktuelle Datum zu verwenden:

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

Ergebnis:

+---------------------+------------------+| JETZT() | TAG DES JAHRES (JETZT ()) |+---------------------+------------------+| 2021-05-16 09:05:57 | 136 |+---------------------+------------------+

Ungültige Argumente

Wenn ein ungültiges Argument übergeben wird, DAYOFYEAR() gibt null zurück :

SELECT DAYOFYEAR('Friday'); 

Ergebnis:

+---------------------+| DAYOFYEAR('Freitag') |+---------------------+| NULL |+---------------------+

Fehlendes Argument

Aufruf von DAYOFYEAR() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT DAYOFYEAR(); 

Ergebnis:

FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „DAYOFYEAR“

Und noch ein Beispiel:

SELECT DAYOFYEAR('2030-01-25', '2045-05-08'); 

Ergebnis:

FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „DAYOFYEAR“