Você já ouviu da função clock_timestamp? Ela retorna a data e hora com bastante precisão junto com a time zone do servidor, da mesma forma que as funções now() e current_timestamp. Então para quê implementar esta nova função? O interessante da clock_timestamp é que a mesma retorna o timestamp do término da transação, enquanto now e current timestamp retornam a data/hora do início da transação corrente.
É uma função que pode ser importante para aqueles que necessitam de alta precisão ao lidar com variáveis temporais.
Exemplos:
1 - Sintaxe básica
teste=# SELECT clock_timestamp();
clock_timestamp
-------------------------------
2011-07-21 09:34:12.645251-03
(1 registro)
2 - Extração de parte do valor retornado.
teste=# SELECT SUBSTRING(CAST(now() AS VARCHAR) FROM 1 FOR 10);
substring
------------
2011-07-21
(1 registro)
3 - Lado a lado o resultado de clock_timestamp() e now() na mesma transação. Observe que os valores são diferentes e indicam o timestamp de início e de término da transação.
teste=# SELECT SUBSTRING(CAST(now() AS VARCHAR) FROM 1 FOR 10);
substring
------------
2011-07-21
(1 registro)
teste=# SELECT now() || ' ' || clock_timestamp();
?column?
---------------------------------------------------------------
2011-07-21 10:21:46.592655-03 2011-07-21 10:21:46.592828-03
(1 registro)
4 - Diferença entre clock_timestamp() e now(), mostrando o tempo decorrido entre o início e o término da transação.
teste=# SELECT clock_timestamp() - now();
?column?
-----------------
00:00:00.000099
(1 registro)
Nenhum comentário:
Postar um comentário