sql >> Base de Datos >  >> RDS >> Mysql

TO_SECONDS() Ejemplos – MySQL

En MySQL, el TO_SECONDS() función devuelve el número de segundos desde el año 0.

Esta función no debe confundirse con TIME_TO_SECONDS() función, que devuelve el número de segundos en un valor de tiempo dado proporcionado como argumento.

Sintaxis

La sintaxis es así:

TO_SECONDS(expr)

Donde expr es un valor de fecha o fecha y hora (para comparar con el año 0).

Ejemplo 1:usar un argumento de "fecha"

Aquí hay un ejemplo usando un argumento de fecha.

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

Resultado:

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

Ejemplo 2:uso de un argumento 'datetime'

Aquí hay un ejemplo usando un argumento de fecha y hora.

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

Resultado:

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

Ejemplo 3:uso de la fecha actual

En este ejemplo, paso el CURDATE() funcionar como argumento para usar la fecha actual.

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

Resultado:

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

Ejemplo 4:uso de la fecha y la hora actuales

En este ejemplo, paso el NOW() funcionar como argumento para usar la fecha y hora actual.

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

Resultado:

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

Años de dos dígitos

MySQL tiene reglas especiales para manejar fechas con años de dos dígitos. Los años de dos dígitos son ambiguos porque se desconoce el siglo. Básicamente, se aplican las siguientes reglas:

  • Valores de año en el rango 00-69 se convierten a 2000-2069 .
  • Valores de año en el rango 70-99 se convierten a 1970-1999 .

Para obtener una explicación completa, consulte la documentación de MySQL sobre cómo MySQL trata con años de dos dígitos.

Aquí hay un ejemplo para demostrarlo:

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

Resultado:

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

Fechas abreviadas

También puede utilizar fechas abreviadas. Aquí hay un ejemplo que usa los valores de fechas anteriores en forma abreviada.

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

Resultado:

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

Fechas anteriores

La documentación de MySQL advierte que TO_SECONDS() función:

no está diseñado para usarse con valores que preceden al advenimiento del calendario gregoriano (1582), porque no tiene en cuenta los días que se perdieron cuando se cambió el calendario. Para fechas anteriores a 1582 (y posiblemente un año posterior en otras localidades), los resultados de esta función no son confiables.