sql >> Database >  >> RDS >> MariaDB

Hoe TO_DAYS() werkt in MariaDB

In MariaDB, TO_DAYS() is een ingebouwde datum- en tijdfunctie die het aantal dagen retourneert vanaf het begin van de standaardkalender (0000-00-00), gebaseerd op een bepaalde datum.

U geeft de datum door aan de functie wanneer u deze aanroept.

De TO_DAYS() functie is het omgekeerde van de FROM_DAYS() functie.

Syntaxis

De syntaxis gaat als volgt:

TO_DAYS(date)

Waar date is de datum waarvoor het aantal dagen sinds 0000-00-00 moet worden geretourneerd.

Voorbeeld

Hier is een voorbeeld:

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

Resultaat:

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

Gebaseerd op de datum van vandaag

Hier is een voorbeeld dat gebruikmaakt van NOW() om het aantal dagen tussen 0000-00-00 en vandaag terug te geven:

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

Resultaat:

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

Ongeldige argumenten

Wanneer een ongeldig argument wordt doorgegeven, TO_DAYS() retourneert NULL met een waarschuwing:

SELECT TO_DAYS('Oops!');

Resultaat:

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

Controleer de waarschuwing:

SHOW WARNINGS;

Resultaat:

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

Ontbrekend argument

Bellen TO_DAYS() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT TO_DAYS();

Resultaat:

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

En nog een voorbeeld:

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

Resultaat:

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

Pre-Gregoriaanse kalender

De TO_DAYS() functie is niet ontworpen voor gebruik met datums vóór de komst van de Gregoriaanse kalender (die in oktober 1582 werd geïntroduceerd). De resultaten zijn niet betrouwbaar omdat er geen rekening wordt gehouden met de verloren dagen toen de kalender veranderde van de Juliaanse kalender.


  1. Hoe de maxrecursion-optie voor een CTE in een Table-Valued-Function in te stellen?

  2. Microsoft SQL Server – Doe mee met SQL Saturday Dallas

  3. LISTAGG in Oracle om verschillende waarden te retourneren

  4. Wat is de JDBC-tegenhanger van het \connect-commando van Postgres?