No MariaDB,
TIMESTAMP() é uma função de data e hora integrada que retorna um valor de data e hora, com base em seu(s) argumento(s). Ele pode ser usado com um argumento ou dois, como segue:
- Quando usado com um argumento, ele retorna essa expressão de data ou data e hora como um valor de data e hora.
- Quando usado com dois argumentos, adiciona o segundo argumento (hora) à primeira expressão (data ou datahora) e retorna o valor de data e hora resultante.
Sintaxe
Ele pode ser usado das duas maneiras a seguir:
TIMESTAMP(expr)
TIMESTAMP(expr1,expr2) Onde
expr1 é uma expressão de data ou data e hora e expr2 é uma expressão de tempo para adicionar a expr1 . Exemplo
Segue um exemplo para demonstrar:
SELECT TIMESTAMP('2030-02-01'); Resultado:
+-------------------------+
| TIMESTAMP('2030-02-01') |
+-------------------------+
| 2030-02-01 00:00:00 |
+-------------------------+ Valores de data e hora
Aqui está um exemplo de como passar um valor de data e 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
Aqui está um exemplo que adiciona o segundo argumento ao primeiro:
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
Aqui está um exemplo que adiciona microssegundos:
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 |
+-----------------------------------------------------+ Tempos negativos
Tempos negativos são válidos:
Exemplo:
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 |
+-----------------------------------------------+ Data atual
Podemos passar
NOW() como argumento datetime para usar a data e hora atuais: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 inválidos
Quando passado um argumento inválido,
TIMESTAMP() retorna null com um aviso:SELECT TIMESTAMP('Ten Thirty AM'); Resultado:
+----------------------------+
| TIMESTAMP('Ten Thirty AM') |
+----------------------------+
| NULL |
+----------------------------+
1 row in set, 1 warning (0.004 sec) Confira o aviso:
SHOW WARNINGS; Resultado:
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Argumento ausente
Chamando
TIMESTAMP() com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro: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
E outro exemplo:
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