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

Wie TO_DAYS() in MariaDB funktioniert

In MariaDB TO_DAYS() ist eine eingebaute Datums- und Zeitfunktion, die die Anzahl der Tage ab Beginn des Standardkalenders (0000-00-00) basierend auf einem bestimmten Datum zurückgibt.

Sie übergeben das Datum an die Funktion, wenn Sie sie aufrufen.

Die TO_DAYS() Funktion ist das Gegenteil von FROM_DAYS() Funktion.

Syntax

Die Syntax lautet wie folgt:

TO_DAYS(date)

Wobei date ist das Datum, für das die Anzahl der Tage seit 0000-00-00 zurückgegeben werden soll.

Beispiel

Hier ist ein Beispiel:

SELECT TO_DAYS('2028-12-31');

Ergebnis:

+-----------------------+
| TO_DAYS('2028-12-31') |
+-----------------------+
|                741077 |
+-----------------------+

Basierend auf dem heutigen Datum

Hier ist ein Beispiel, das NOW() verwendet um die Anzahl der Tage zwischen 0000-00-00 und heute zurückzugeben:

SELECT
    NOW(),
    TO_DAYS(NOW());

Ergebnis:

+---------------------+----------------+
| NOW()               | TO_DAYS(NOW()) |
+---------------------+----------------+
| 2021-05-23 09:56:45 |         738298 |
+---------------------+----------------+

Ungültige Argumente

Wenn ein ungültiges Argument übergeben wird, TO_DAYS() gibt NULL zurück mit einer Warnung:

SELECT TO_DAYS('Oops!');

Ergebnis:

+------------------+
| TO_DAYS('Oops!') |
+------------------+
|             NULL |
+------------------+
1 row in set, 1 warning (0.000 sec)

Überprüfen Sie die Warnung:

SHOW WARNINGS;

Ergebnis:

+---------+------+-----------------------------------+
| Level   | Code | Message                           |
+---------+------+-----------------------------------+
| Warning | 1292 | Incorrect datetime value: 'Oops!' |
+---------+------+-----------------------------------+

Fehlendes Argument

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

SELECT TO_DAYS();

Ergebnis:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'

Und noch ein Beispiel:

SELECT TO_DAYS( '2028-12-31', '2029-12-31' );

Ergebnis:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_DAYS'

Prägregorianischer Kalender

Die TO_DAYS() Die Funktion ist nicht für die Verwendung mit Datumsangaben vor dem Aufkommen des gregorianischen Kalenders (der im Oktober 1582 eingeführt wurde) vorgesehen. Die Ergebnisse sind nicht zuverlässig, da sie die verlorenen Tage nicht berücksichtigen, als der Kalender vom Julianischen Kalender geändert wurde.