In MySQL is de TO_SECONDS()
functie retourneert het aantal seconden sinds het jaar 0.
Deze functie moet niet worden verward met de TIME_TO_SECONDS()
functie, die het aantal seconden in een gegeven tijdwaarde als argument retourneert.
Syntaxis
De syntaxis gaat als volgt:
TO_SECONDS(expr)
Waar expr
is een datum- of datetime-waarde (te vergelijken met jaar 0).
Voorbeeld 1 – Een 'datum'-argument gebruiken
Hier is een voorbeeld met een datumargument.
SELECT TO_SECONDS('2021-09-21');
Resultaat:
+--------------------------+ | TO_SECONDS('2021-09-21') | +--------------------------+ | 63799401600 | +--------------------------+
Voorbeeld 2 – Een ‘datetime’-argument gebruiken
Hier is een voorbeeld met een datetime-argument.
SELECT TO_SECONDS('2021-09-21 10:30:25');
Resultaat:
+-----------------------------------+ | TO_SECONDS('2021-09-21 10:30:25') | +-----------------------------------+ | 63799439425 | +-----------------------------------+
Voorbeeld 3 – De huidige datum gebruiken
In dit voorbeeld geef ik de CURDATE()
functie als het argument om de huidige datum te gebruiken.
SELECT TO_SECONDS(CURDATE()) AS 'Result';
Resultaat:
+-------------+ | Result | +-------------+ | 63697968000 | +-------------+
Voorbeeld 4 – De huidige datum en tijd gebruiken
In dit voorbeeld geef ik de NOW()
functie als argument om de huidige datum en tijd te gebruiken.
SELECT TO_SECONDS(NOW()) AS 'Result';
Resultaat:
+-------------+ | Result | +-------------+ | 63698002698 | +-------------+
Tweecijferige jaren
MySQL heeft speciale regels voor het omgaan met datums met een jaartal van twee cijfers. Tweecijferige jaren zijn dubbelzinnig omdat de eeuw onbekend is. In principe zijn de volgende regels van toepassing:
- Jaarwaarden in het bereik
00-69
worden geconverteerd naar2000-2069
. - Jaarwaarden in het bereik
70-99
worden geconverteerd naar1970-1999
.
Zie voor een volledige uitleg de MySQL-documentatie over hoe MySQL omgaat met jaren van twee cijfers.
Hier is een voorbeeld om te demonstreren:
SELECT TO_SECONDS('69-10-07') AS '69 (2069)', TO_SECONDS('70-10-07') AS '70 (1970)';
Resultaat:
+-------------+-------------+ | 69 (2069) | 70 (1970) | +-------------+-------------+ | 65315548800 | 62191324800 | +-------------+-------------+
Verkorte datums
U kunt ook verkorte datums gebruiken. Hier is een voorbeeld waarin de vorige datumwaarden in verkorte vorm worden gebruikt.
SELECT TO_SECONDS('691007') AS '69 (2069)', TO_SECONDS('701007') AS '70 (1970)';
Resultaat:
+-------------+-------------+ | 69 (2069) | 70 (1970) | +-------------+-------------+ | 65315548800 | 62191324800 | +-------------+-------------+
Vroegere datums
De MySQL-documentatie waarschuwt dat de TO_SECONDS()
functie:
is niet bedoeld voor gebruik met waarden die voorafgaan aan de komst van de Gregoriaanse kalender (1582), omdat er geen rekening wordt gehouden met de dagen die verloren zijn gegaan toen de kalender werd gewijzigd. Voor data vóór 1582 (en mogelijk een later jaar in andere landen) zijn de resultaten van deze functie niet betrouwbaar.