No MariaDB,
NOW()
é uma função de data e hora integrada que retorna a data e a hora atuais. O valor de retorno é retornado em
'YYYY-MM-DD HH:MM:SS'
ou YYYYMMDDHHMMSS.uuuuuu
formato, dependendo se a função é usada em uma string ou contexto numérico. O valor de retorno é expresso no fuso horário atual.
Você também tem a opção de especificar a precisão de microssegundos.
Sintaxe
A sintaxe fica assim:
NOW([precision])
Onde
precision
é um argumento opcional que especifica a precisão de microssegundos. Também possui os seguintes sinônimos:
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP([precision])
LOCALTIME
LOCALTIME([precision])
LOCALTIMESTAMP
LOCALTIMESTAMP([precision])
Exemplo
Aqui está um exemplo:
SELECT NOW();
Resultado:
+---------------------+ | NOW() | +---------------------+ | 2021-05-09 10:12:39 | +---------------------+
Contexto Numérico
Quando
NOW()
é usado em um contexto numérico, o resultado está em YYYYMMDDHHMMSS.uuuuuu
formato. Exemplo:
SELECT
NOW(),
NOW() + 0;
Resultado:
+---------------------+----------------+ | NOW() | NOW() + 0 | +---------------------+----------------+ | 2021-05-09 10:13:10 | 20210509101310 | +---------------------+----------------+
Precisão
Aqui está um exemplo de especificação de precisão de microssegundos:
SELECT
NOW(6),
NOW(6) + 0;
Resultado:
+----------------------------+-----------------------+ | NOW(6) | NOW(6) + 0 | +----------------------------+-----------------------+ | 2021-05-09 10:13:30.619522 | 20210509101330.619522 | +----------------------------+-----------------------+
O valor máximo para a precisão de microssegundos é 6. Veja o que acontece quando um número mais alto é passado para a precisão:
SELECT NOW(12);
Resultado:
ERROR 1426 (42000): Too big precision 12 specified for 'current_timestamp'. Maximum is 6
Sinônimos
Como visto na sintaxe acima, existem vários sinônimos para
NOW()
. Aqui está um exemplo que usa os vários sinônimos:
SELECT
CURRENT_TIMESTAMP,
CURRENT_TIMESTAMP(),
LOCALTIME,
LOCALTIME(),
LOCALTIMESTAMP,
LOCALTIMESTAMP();
Resultado (usando saída vertical):
CURRENT_TIMESTAMP: 2021-05-09 10:24:53 CURRENT_TIMESTAMP(): 2021-05-09 10:24:53 LOCALTIME: 2021-05-09 10:24:53 LOCALTIME(): 2021-05-09 10:24:53 LOCALTIMESTAMP: 2021-05-09 10:24:53 LOCALTIMESTAMP(): 2021-05-09 10:24:53
Adicionando ao carimbo de data/hora atual
Há muitas maneiras de realizar aritmética em valores de data e hora no MariaDB.
Aqui está um exemplo de uso do operador de adição (
+
) para adicionar 2 dias à data:SELECT
NOW(),
NOW() + INTERVAL 2 DAY;
Resultado:
+---------------------+------------------------+ | NOW() | NOW() + INTERVAL 2 DAY | +---------------------+------------------------+ | 2021-05-09 10:17:39 | 2021-05-11 10:17:39 | +---------------------+------------------------+
Veja também funções como
DATE_ADD()
e ADDDATE()
para uma maneira alternativa de adicionar à data atual. Subtraindo da data atual
Aqui está um exemplo de uso do operador de subtração (
-
) para subtrair 10 dias da data atual:SELECT
NOW(),
NOW() - INTERVAL 10 DAY;
Resultado:
+---------------------+-------------------------+ | NOW() | NOW() - INTERVAL 10 DAY | +---------------------+-------------------------+ | 2021-05-09 10:19:35 | 2021-04-29 10:19:35 | +---------------------+-------------------------+
Veja funções como
DATE_SUB()
e SUBDATE()
para uma forma alternativa de subtrair da data atual.