Pular para o conteúdo principal
Documentos
FunçõesExpressõesKeywordsDeclaraçõesCláusulas

Função MySQL NOW()

A função `NOW()` do MySQL retorna a data e a hora atuais no formato `YYYY-MM-DD HH:MM:SS`. É comumente usado para capturar o momento exato em que uma instrução SQL é executada. O resultado é baseado no fuso horário atual do servidor, a menos que você tenha configurado de outra forma.

Uso

A função `NOW()` é usada quando você precisa do carimbo de data/hora atual para operações como inserção de dados, atualizações ou registro em contextos SQL, como instruções `SELECT` ou procedimentos armazenados. É frequentemente utilizado para rastrear o tempo de criação ou modificação de registros.

sql
SELECT NOW();

Nessa sintaxe, `NOW()` produz a data e a hora atuais quando a consulta é executada.

Exemplos

1. Recuperar data e hora atuais

sql
SELECT NOW();

Este exemplo retorna a data e a hora atuais do servidor.

2. Inserir carimbo de data/hora atual

sql
INSERT INTO logs (event, created_at)
VALUES ('User login', NOW());

Aqui, a função `NOW()` registra a hora exata em que um usuário faz login, armazenando-a na coluna `created_at`.

3. Atualizar com o registro de data e hora atual

sql
UPDATE orders
SET last_modified = NOW()
WHERE order_id = 102;

Esse exemplo atualiza a coluna `last_modified` de um pedido específico para o registro de data e hora atual, indicando quando a última alteração foi feita.

Dicas e práticas recomendadas

  • Use em INSERT e UPDATE. Utilize `NOW()` para marcar automaticamente a data e a hora dos registros após a criação ou modificação.
  • Combine com as configurações de fuso horário. Verifique se as configurações de fuso horário do banco de dados correspondem às necessidades do aplicativo para obter carimbos de data e hora precisos. Use funções como `CONVERT_TZ()` para gerenciar os fusos horários de forma eficaz.
  • Considere o impacto no desempenho. O `NOW()` é avaliado uma vez por instrução, não por linha, o que reduz a sobrecarga de desempenho em consultas grandes.
  • Utilize para registro e auditoria. Use `NOW()` para rastrear efetivamente a atividade em seus aplicativos para fins de depuração e auditoria.
  • Compatibilidade de tipos de dados. A função `NOW()` pode ser armazenada nas colunas `DATETIME` e `TIMESTAMP`, cada uma com propriedades diferentes em relação ao tratamento do fuso horário e à atualização automática.
  • Considerações sobre a transação. Tenha cuidado com a forma como os valores `NOW()` podem variar entre diferentes instruções em uma transação se forem executados em momentos diferentes.
  • Diferencia-se de CURRENT_TIMESTAMP(). Embora `NOW()` e `CURRENT_TIMESTAMP()` sejam frequentemente usados de forma intercambiável, existem diferenças sutis; `CURRENT_TIMESTAMP()` pode ser ajustado pelos atributos `DEFAULT CURRENT_TIMESTAMP` e `ON UPDATE CURRENT_TIMESTAMP` nas definições de coluna.

Aprimoramento de SQL para iniciantes

Adquira as habilidades de SQL para interagir com seus dados e consultá-los.
Comece a aprender de graça