PostgreSQL CURRENT_TIMESTAMP
O PostgreSQL fornece várias funções de data para lidar e manipular valores de data e hora. Entre eles, `CURRENT_TIMESTAMP` é usado para obter a data e a hora atuais, com as informações de fuso horário, no momento em que a função é executada.
Uso
A função `CURRENT_TIMESTAMP` é usada quando você precisa capturar o momento exato em que uma operação é executada, como eventos de registro em log ou definição de valores padrão para colunas de carimbo de data/hora.
sql
SELECT CURRENT_TIMESTAMP;
Essa sintaxe recupera a data e a hora atuais, incluindo o fuso horário, no momento em que essa consulta é executada.
Exemplos
1. Recuperação básica do carimbo de data/hora atual
sql
SELECT CURRENT_TIMESTAMP;
Esse comando retorna a data e a hora atuais, incluindo informações de fuso horário, no momento da execução.
2. Inserindo o registro de data e hora atual em uma tabela
sql
INSERT INTO logs (event_description, event_time)
VALUES ('User logged in', CURRENT_TIMESTAMP);
Este exemplo demonstra como você insere o registro de data e hora atual na tabela `logs`, capturando o momento exato em que um evento ocorre.
3. Definição do valor padrão de uma coluna
sql
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
order_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Aqui, a tabela `orders` é criada com uma coluna `order_time` que armazena automaticamente o carimbo de data/hora atual como seu valor padrão quando um novo registro é inserido.
Dicas e práticas recomendadas
- Conscientização sobre o fuso horário: Lembre-se de que `CURRENT_TIMESTAMP` retorna a hora com informações de fuso horário, o que é crucial para aplicativos que abrangem vários fusos horários.
- Usar como padrão: Utilize `CURRENT_TIMESTAMP` como valor padrão para colunas de registro de data e hora para garantir a integridade dos dados e o controle automático de tempo.
- Evite ligações frequentes: Minimize o número de chamadas `CURRENT_TIMESTAMP` em uma única transação para evitar valores de tempo inconsistentes.
- Controle de precisão: Se necessário, especifique a precisão com `CURRENT_TIMESTAMP(precision)` para controlar o número de segundos fracionários. Por exemplo:
sql
SELECT CURRENT_TIMESTAMP(2);
Isso recupera o registro de data e hora atual com precisão de até dois segundos fracionários.
Notas adicionais
- Recurso padrão do SQL: `CURRENT_TIMESTAMP` é um recurso padrão do SQL e não é exclusivo do PostgreSQL. Isso pode ser benéfico para usuários que trabalham com vários sistemas de banco de dados.
- Comparação com funções semelhantes: Os usuários devem observar que `CURRENT_TIMESTAMP` é semelhante a funções como `NOW()` ou `CURRENT_TIME`, sendo que `NOW()` é um alias para `CURRENT_TIMESTAMP` no PostgreSQL, enquanto `CURRENT_TIME` retorna apenas a hora atual.