sql >> Databasteknik >  >> RDS >> Mysql

TO_DAYS() Exempel – MySQL

I MySQL kan du använda TO_DAYS() funktion för att ta reda på hur många dagar som har gått sedan dag 0 för ett visst datum. Till exempel kan du skicka dagens datum till den här funktionen, och det kommer att returnera hur många dagar det har gått sedan dag 0 .

Den här artikeln innehåller exempel att visa.

Syntax

Syntaxen ser ut så här:

TO_DAYS(date)

Där date är det datum som ska användas i beräkningen.

Exempel

Här är ett exempel att visa.

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

Resultat:

+-----------------------+
| TO_DAYS('1999-12-31') |
+-----------------------+
|                730484 |
+-----------------------+

Observera att MySQL-dokumentationen rekommenderar att denna funktion inte är avsedd att användas med värden som föregår tillkomsten av den gregorianska kalendern (1582). Detta eftersom det inte tar hänsyn till de dagar som gick förlorade när kalendern ändrades.

Exempel 2 – Aktuellt datum

Här är ett exempel som använder det aktuella datumet.

SELECT 
    CURDATE(),
    TO_DAYS(CURDATE());

Resultat:

+------------+--------------------+
| CURDATE()  | TO_DAYS(CURDATE()) |
+------------+--------------------+
| 2018-06-26 |             737236 |
+------------+--------------------+

Först använder jag CURDATE() funktion för att returnera det aktuella datumet, sedan skickar jag den funktionen till TO_DAYS() funktion för att returnera antalet dagar det har gått sedan dag 0 .

TO_DAYS() kontra FROM_DAYS()

FROM_DAYS() funktion är motsatsen till TO_DAYS() , som, givet ett datumdatum, returnerar dagnumret. Här är ett exempel för att visa sambandet mellan dessa två funktioner:

SELECT 
    CURDATE(),
    TO_DAYS(CURDATE()),
    FROM_DAYS(TO_DAYS(CURDATE()));

Resultat:

+------------+--------------------+-------------------------------+
| CURDATE()  | TO_DAYS(CURDATE()) | FROM_DAYS(TO_DAYS(CURDATE())) |
+------------+--------------------+-------------------------------+
| 2018-06-26 |             737236 | 2018-06-26                    |
+------------+--------------------+-------------------------------+

Så i det här exemplet använder jag TO_DAYS() för att returnera antalet dagar från det aktuella datumet. Jag använder sedan FROM_DAYS() för att returnera datumet från det värdet (som, som förväntat, återgår till det ursprungliga värdet för CURDATE() ).


  1. PostgreSQL DATEADD() Ekvivalent

  2. Hur man krypterar en användardefinierad funktion i SQL Server

  3. Använda SQL Server Profiler | SQL Server Performance Felsökning -5

  4. TRANSACTION_MUTEX och transaktionsåtkomst för flera sessioner