In MySQL der TO_SECONDS()
Die Funktion gibt die Anzahl der Sekunden seit dem Jahr 0 zurück.
Diese Funktion ist nicht mit TIME_TO_SECONDS()
zu verwechseln Funktion, die die Anzahl der Sekunden in einem bestimmten Zeitwert zurückgibt, der als Argument bereitgestellt wird.
Syntax
Die Syntax lautet wie folgt:
TO_SECONDS(expr)
Wobei expr
ist ein Datums- oder Datumszeitwert (zu vergleichen mit dem Jahr 0).
Beispiel 1 – Verwenden eines „Datum“-Arguments
Hier ist ein Beispiel mit einem Datumsargument.
SELECT TO_SECONDS('2021-09-21');
Ergebnis:
+--------------------------+ | TO_SECONDS('2021-09-21') | +--------------------------+ | 63799401600 | +--------------------------+
Beispiel 2 – Verwendung eines „datetime“-Arguments
Hier ist ein Beispiel mit einem datetime-Argument.
SELECT TO_SECONDS('2021-09-21 10:30:25');
Ergebnis:
+-----------------------------------+ | TO_SECONDS('2021-09-21 10:30:25') | +-----------------------------------+ | 63799439425 | +-----------------------------------+
Beispiel 3 – Verwenden des aktuellen Datums
In diesem Beispiel übergebe ich das CURDATE()
als Argument verwenden, um das aktuelle Datum zu verwenden.
SELECT TO_SECONDS(CURDATE()) AS 'Result';
Ergebnis:
+-------------+ | Result | +-------------+ | 63697968000 | +-------------+
Beispiel 4 – Verwenden des aktuellen Datums und der aktuellen Uhrzeit
In diesem Beispiel übergebe ich NOW()
als Argument verwenden, um das aktuelle Datum und die aktuelle Uhrzeit zu verwenden.
SELECT TO_SECONDS(NOW()) AS 'Result';
Ergebnis:
+-------------+ | Result | +-------------+ | 63698002698 | +-------------+
Zweistellige Jahreszahlen
MySQL hat spezielle Regeln für den Umgang mit Datumsangaben mit zweistelligen Jahreszahlen. Zweistellige Jahreszahlen sind mehrdeutig, da das Jahrhundert unbekannt ist. Grundsätzlich gelten folgende Regeln:
- Jahreswerte im Bereich
00-69
werden in2000-2069
umgewandelt . - Jahreswerte im Bereich
70-99
werden in1970-1999
umgewandelt .
Eine vollständige Erklärung finden Sie in der MySQL-Dokumentation darüber, wie MySQL mit zweistelligen Jahreszahlen umgeht.
Hier ist ein Beispiel zur Veranschaulichung:
SELECT TO_SECONDS('69-10-07') AS '69 (2069)', TO_SECONDS('70-10-07') AS '70 (1970)';
Ergebnis:
+-------------+-------------+ | 69 (2069) | 70 (1970) | +-------------+-------------+ | 65315548800 | 62191324800 | +-------------+-------------+
Abgekürzte Daten
Sie können auch abgekürzte Datumsangaben verwenden. Hier ist ein Beispiel, in dem die vorherigen Datumswerte in abgekürzter Form verwendet werden.
SELECT TO_SECONDS('691007') AS '69 (2069)', TO_SECONDS('701007') AS '70 (1970)';
Ergebnis:
+-------------+-------------+ | 69 (2069) | 70 (1970) | +-------------+-------------+ | 65315548800 | 62191324800 | +-------------+-------------+
Frühere Daten
Die MySQL-Dokumentation warnt davor, dass TO_SECONDS()
Funktion:
ist nicht für die Verwendung mit Werten vorgesehen, die der Einführung des gregorianischen Kalenders (1582) vorausgehen, da er die verlorenen Tage nicht berücksichtigt, als der Kalender geändert wurde. Für Daten vor 1582 (und möglicherweise ein späteres Jahr an anderen Orten) sind die Ergebnisse dieser Funktion nicht zuverlässig.