En MariaDB, TIME()
es una función de fecha y hora integrada que extrae la parte de la hora de una expresión de fecha y hora determinada y la devuelve como una cadena.
Acepta un argumento, que es el valor de hora o fecha y hora para el que desea extraer la hora.
Sintaxis
La sintaxis es así:
TIME(expr)
Donde expr
es la expresión de hora o fecha y hora para la que se extrae la hora.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT TIME('2030-02-01 10:30:45');
Resultado:
+-----------------------------+ | TIME('2030-02-01 10:30:45') | +-----------------------------+ | 10:30:45 | +-----------------------------+
Valores de tiempo
Aquí hay un ejemplo que extrae el tiempo de un valor de tiempo:
SELECT TIME('10:30:45');
Resultado:
+------------------+ | TIME('10:30:45') | +------------------+ | 10:30:45 | +------------------+
Microsegundos
Aquí hay un ejemplo que incluye microsegundos:
SELECT TIME('2030-02-01 10:30:45.123456');
Resultado:
+------------------------------------+ | TIME('2030-02-01 10:30:45.123456') | +------------------------------------+ | 10:30:45.123456 | +------------------------------------+
Horarios más amplios
TIME
los valores pueden estar en el rango '-838:59:59.999999'
a '838:59:59.999999'
.
Por lo tanto, la parte de la hora puede ser mucho mayor que 23
:
SELECT TIME('578:30:45');
Resultado:
+-------------------+ | TIME('578:30:45') | +-------------------+ | 578:30:45 | +-------------------+
Tiempos negativos
Los tiempos negativos son válidos:
Ejemplo
SELECT TIME('-578:30:45');
Resultado:
+--------------------+ | TIME('-578:30:45') | +--------------------+ | -578:30:45 | +--------------------+
Horas fuera de rango
Valores de tiempo fuera del rango '-838:59:59.999999'
a '838:59:59.999999'
están limitados en el límite correspondiente e incluyen una advertencia.
Ejemplo:
SELECT TIME('978:30:45');
Resultado (usando salida vertical):
+-------------------+ | TIME('978:30:45') | +-------------------+ | 838:59:59 | +-------------------+ 1 row in set, 1 warning (0.003 sec)
Revisemos la advertencia:
SHOW WARNINGS;
Resultado (usando salida vertical):
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '978:30:45' | +---------+------+---------------------------------------------+
Fecha actual
Podemos pasar NOW()
como argumento de fecha y hora para usar la hora actual:
SELECT
NOW(),
TIME(NOW());
Resultado:
+---------------------+-------------+ | NOW() | TIME(NOW()) | +---------------------+-------------+ | 2021-05-27 10:24:23 | 10:24:23 | +---------------------+-------------+
Argumentos no válidos
Cuando se pasa un argumento no válido, TIME()
devuelve null
con una advertencia:
SELECT TIME('Ten Thirty AM');
Resultado:
+-----------------------+ | TIME('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+ 1 row in set, 1 warning (0.002 sec)
Compruebe la advertencia:
SHOW WARNINGS;
Resultado:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Argumento faltante
Llamando a TIME()
con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT TIME();
Resultado:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Y otro ejemplo:
SELECT TIME('10:30:45', '06:30:45');
Resultado:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1