sql >> Database teknologi >  >> RDS >> Mysql

TO_SECONDS() Eksempler – MySQL

I MySQL er TO_SECONDS() funktion returnerer antallet af sekunder siden året 0.

Denne funktion må ikke forveksles med TIME_TO_SECONDS() funktion, som returnerer antallet af sekunder i en given tidsværdi angivet som et argument.

Syntaks

Syntaksen ser sådan ud:

TO_SECONDS(expr)

Hvor expr er en dato- eller datotidsværdi (der skal sammenlignes med år 0).

Eksempel 1 – Brug af et "dato"-argument

Her er et eksempel, der bruger et datoargument.

SELECT TO_SECONDS('2021-09-21');

Resultat:

+--------------------------+
| TO_SECONDS('2021-09-21') |
+--------------------------+
|              63799401600 |
+--------------------------+

Eksempel 2 – Brug af et 'datetime'-argument

Her er et eksempel, der bruger et datetime-argument.

SELECT TO_SECONDS('2021-09-21 10:30:25');

Resultat:

+-----------------------------------+
| TO_SECONDS('2021-09-21 10:30:25') |
+-----------------------------------+
|                       63799439425 |
+-----------------------------------+

Eksempel 3 – Brug af den aktuelle dato

I dette eksempel sender jeg CURDATE() fungere som argument for at bruge den aktuelle dato.

SELECT TO_SECONDS(CURDATE()) AS 'Result';

Resultat:

+-------------+
| Result      |
+-------------+
| 63697968000 |
+-------------+

Eksempel 4 – Brug af den aktuelle dato og klokkeslæt

I dette eksempel sender jeg NOW() fungere som argument for at bruge den aktuelle dato og klokkeslæt.

SELECT TO_SECONDS(NOW()) AS 'Result';

Resultat:

+-------------+
| Result      |
+-------------+
| 63698002698 |
+-------------+

Tocifrede år

MySQL har særlige regler for håndtering af datoer med tocifrede årstal. Tocifrede årstal er tvetydige, fordi århundredet er ukendt. Som udgangspunkt gælder følgende regler:

  • Årsværdier i området 00-69 er konverteret til 2000-2069 .
  • Årsværdier i området 70-99 er konverteret til 1970-1999 .

For en fuldstændig forklaring, se MySQL-dokumentationen om, hvordan MySQL håndterer tocifrede årstal.

Her er et eksempel til demonstration:

SELECT 
  TO_SECONDS('69-10-07') AS '69 (2069)',
  TO_SECONDS('70-10-07') AS '70 (1970)';

Resultat:

+-------------+-------------+
| 69 (2069)   | 70 (1970)   |
+-------------+-------------+
| 65315548800 | 62191324800 |
+-------------+-------------+

Forkortede datoer

Du kan også bruge forkortede datoer. Her er et eksempel, der bruger de tidligere datoværdier i forkortet form.

SELECT 
  TO_SECONDS('691007') AS '69 (2069)',
  TO_SECONDS('701007') AS '70 (1970)';

Resultat:

+-------------+-------------+
| 69 (2069)   | 70 (1970)   |
+-------------+-------------+
| 65315548800 | 62191324800 |
+-------------+-------------+

Tidligere datoer

MySQL-dokumentationen advarer om, at TO_SECONDS() funktion:

er ikke beregnet til brug med værdier, der går forud for fremkomsten af ​​den gregorianske kalender (1582), fordi den ikke tager højde for de dage, der gik tabt, da kalenderen blev ændret. For datoer før 1582 (og muligvis et senere år i andre lokaliteter) er resultater fra denne funktion ikke pålidelige.


  1. Hvordan henter man poster for de sidste 30 minutter i MS SQL?

  2. Sådan fjerner du den rigtige polstring på dagsnavnet i Oracle

  3. SQL IN vs SQL EKSISTERER

  4. Sådan finder du maksimale værdier i rækker