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

TO_SECONDS() Esempi – MySQL

In MySQL, il TO_SECONDS() la funzione restituisce il numero di secondi dall'anno 0.

Questa funzione non deve essere confusa con TIME_TO_SECONDS() funzione, che restituisce il numero di secondi in un dato valore temporale fornito come argomento.

Sintassi

La sintassi è questa:

TO_SECONDS(expr)

Dove expr è un valore di data o data/ora (da confrontare con l'anno 0).

Esempio 1:utilizzo di un argomento "data"

Ecco un esempio che utilizza un argomento data.

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

Risultato:

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

Esempio 2:utilizzo di un argomento "datetime"

Ecco un esempio che utilizza un argomento datetime.

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

Risultato:

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

Esempio 3:utilizzo della data corrente

In questo esempio, passo il CURDATE() funzione come argomento per utilizzare la data corrente.

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

Risultato:

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

Esempio 4:utilizzo della data e dell'ora correnti

In questo esempio, passo il NOW() funzione come argomento per utilizzare la data e l'ora correnti.

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

Risultato:

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

Anni a due cifre

MySQL ha regole speciali per gestire le date con anni a due cifre. Gli anni a due cifre sono ambigui perché il secolo è sconosciuto. Fondamentalmente, si applicano le seguenti regole:

  • Valori dell'anno nell'intervallo 00-69 vengono convertiti in 2000-2069 .
  • Valori dell'anno nell'intervallo 70-99 vengono convertiti in 1970-1999 .

Per una spiegazione completa, consulta la documentazione di MySQL su come MySQL gestisce gli anni a due cifre.

Ecco un esempio da dimostrare:

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

Risultato:

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

Date abbreviate

Puoi anche usare date abbreviate. Ecco un esempio che utilizza i valori di data precedenti in forma abbreviata.

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

Risultato:

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

Date precedenti

La documentazione MySQL avverte che TO_SECONDS() funzione:

non è destinato all'uso con valori che precedono l'avvento del calendario gregoriano (1582), perché non tiene conto dei giorni persi quando il calendario è stato modificato. Per le date precedenti al 1582 (e forse un anno successivo in altre località), i risultati di questa funzione non sono affidabili.