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

Wie DAYOFMONTH() in MariaDB funktioniert

In MariaDB, DAYOFMONTH() ist eine integrierte Datums- und Uhrzeitfunktion, die den Tag des Monats ab einem bestimmten Datum zurückgibt.

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

Das Ergebnis liegt im Bereich 1 bis 31 . Wenn das Datum jedoch einen Null-Tag-Teil hat (zum Beispiel '0000-00-00' oder '2021-00-00' ), ist das Ergebnis 0 .

Syntax

Die Syntax lautet wie folgt:

DAYOFMONTH(date) 

Wobei date ist das Datum, aus dem der Tag extrahiert werden soll.

Beispiel

Hier ist ein Beispiel:

SELECT DAYOFMONTH('2030-01-25'); 

Ergebnis:

+---------------------+| DAYOFMONTH('2030-01-25') |+---------------------+| 25 |+---------------------+

Datum/Uhrzeit-Werte

Es funktioniert auch mit datetime-Werten:

SELECT DAYOFMONTH('2030-01-25 10:30:45'); 

Ergebnis:

+-----------------------------------+| TAG DES MONATS('2030-01-25 10:30:45') |+-------------------------------- --+| 25 |+-----------------------------------+

Zero Days

Hier ist ein Beispiel, das einen Nulltag im Datum verwendet:

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

Ergebnis:

+---------------------+| DAYOFMONTH('2030-00-00') |+---------------------+| 0 |+---------------------+

Numerische Daten

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

Beispiel

SELECT DAYOFMONTH(20300125); 

Ergebnis:

+----------------------+| DAYOFMONTH(20300125) |+----------------------+| 25 |+----------------------+

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

SELECT DAYOFMONTH(300125); 

Ergebnis:

+--------------------+| DAYOFMONTH(300125) |+--------------------+| 25 |+--------------------+

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

SELECT DAYOFMONTH(20300135); 

Ergebnis:

+----------------------+| DAYOFMONTH(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 
    DAYOFMONTH('2030/01/25'),
    DAYOFMONTH('2030,01,25'),
    DAYOFMONTH('2030:01:25'),
    DAYOFMONTH('2030;01!25'); 

Ergebnis (bei vertikaler Ausgabe):

DAYOFMONTH('2030/01/25'):25DAYOFMONTH('2030,01,25'):25DAYOFMONTH('2030:01:25'):25DAYOFMONTH('2030;01!25'):25 

Aktuelles Datum

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

SELECT 
    NOW(),
    DAYOFMONTH(NOW()); 

Ergebnis:

+---------------------+-------------------+| JETZT() | MONATSTAG(JETZT()) |+---------------------+-------------------+ | 2021-05-13 09:02:41 | 13 |+---------------------+-------------------+

Ungültige Argumente

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

SELECT DAYOFMONTH('Homer'); 

Ergebnis:

+---------------------+| DAYOFMONTH('Homer') |+---------------------+| NULL |+---------------------+

Fehlendes Argument

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

SELECT DAYOFMONTH(); 

Ergebnis:

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

Und noch ein Beispiel:

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

Ergebnis:

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