Mysql
 sql >> Datenbank >  >> RDS >> Mysql

TO_SECONDS() Beispiele – MySQL

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 in 2000-2069 umgewandelt .
  • Jahreswerte im Bereich 70-99 werden in 1970-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.