En MariaDB, TIMESTAMP()
es una función de fecha y hora integrada que devuelve un valor de fecha y hora, en función de su argumento o argumentos.
Se puede usar con uno o dos argumentos, de la siguiente manera:
- Cuando se usa con un argumento, devuelve esa expresión de fecha o fechahora como un valor de fechahora.
- Cuando se usa con dos argumentos, agrega el segundo argumento (hora) a la primera expresión (fecha o fechahora) y luego devuelve el valor de fechahora resultante.
Sintaxis
Se puede utilizar de las dos formas siguientes:
TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)
Donde expr1
es una expresión de fecha o fecha y hora, y expr2
es una expresión de tiempo para agregar a expr1
.
Ejemplo
Aquí hay un ejemplo para demostrarlo:
SELECT TIMESTAMP('2030-02-01');
Resultado:
+-------------------------+ | TIMESTAMP('2030-02-01') | +-------------------------+ | 2030-02-01 00:00:00 | +-------------------------+
Valores de fecha y hora
Aquí hay un ejemplo de cómo pasar un valor de fecha y hora:
SELECT TIMESTAMP('2030-02-01 10:30:45');
Resultado:
+----------------------------------+ | TIMESTAMP('2030-02-01 10:30:45') | +----------------------------------+ | 2030-02-01 10:30:45 | +----------------------------------+
Segundo Argumento
Aquí hay un ejemplo que agrega el segundo argumento al primero:
SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15');
Resultado:
+----------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '02:15:15') | +----------------------------------------------+ | 2030-02-01 12:46:00 | +----------------------------------------------+
Microsegundos
Aquí hay un ejemplo que agrega microsegundos:
SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456');
Resultado:
+-----------------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456') | +-----------------------------------------------------+ | 2030-02-01 10:30:45.123456 | +-----------------------------------------------------+
Tiempos negativos
Los tiempos negativos son válidos:
Ejemplo:
SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00');
Resultado:
+-----------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '-09:20:00') | +-----------------------------------------------+ | 2030-02-01 01:10:45 | +-----------------------------------------------+
Fecha actual
Podemos pasar NOW()
como argumento de fecha y hora para usar la fecha y hora actuales:
SELECT
NOW(),
TIMESTAMP(NOW(), '10:30:45');
Resultado:
+---------------------+------------------------------+ | NOW() | TIMESTAMP(NOW(), '10:30:45') | +---------------------+------------------------------+ | 2021-05-28 09:25:09 | 2021-05-28 19:55:54 | +---------------------+------------------------------+
Argumentos no válidos
Cuando se pasa un argumento no válido, TIMESTAMP()
devuelve null
con una advertencia:
SELECT TIMESTAMP('Ten Thirty AM');
Resultado:
+----------------------------+ | TIMESTAMP('Ten Thirty AM') | +----------------------------+ | NULL | +----------------------------+ 1 row in set, 1 warning (0.004 sec)
Compruebe la advertencia:
SHOW WARNINGS;
Resultado:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Argumento faltante
Llamando a TIMESTAMP()
con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:
SELECT TIMESTAMP();
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 TIMESTAMP('2020-12-09', '06: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