PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Кой е най-елегантният начин за съхраняване на времеви печат с nanosec в postgresql?

Използвайте numeric като основен тип нано времеви печати. Функцията преобразува числова стойност в нейното текстово представяне на времеви печат:

create or replace function nanotimestamp_as_text(numeric)
returns text language sql immutable as $$
    select concat(to_timestamp(trunc($1))::timestamp::text, ltrim(($1- trunc($1))::text, '0'))
$$;

Можете също така лесно да преобразувате числови стойности в редовни времеви отпечатъци в случаите, когато свръхпрецизността не е необходима, например:

with my_data(nano_timestamp) as (
    select 1508327235.388551234::numeric
)

select 
    to_timestamp(nano_timestamp)::timestamp,
    nanotimestamp_as_text(nano_timestamp)
from my_data;

        to_timestamp        |     nanotimestamp_as_text     
----------------------------+-------------------------------
 2017-10-18 13:47:15.388551 | 2017-10-18 13:47:15.388551234
(1 row)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как Cot() работи в PostgreSQL

  2. pgadmin4:postgresql сървърът на приложения не може да бъде свързан.

  3. Цел за време за възстановяване на Pgbackrest

  4. Как да изберете записи от последните 24 часа с помощта на PostgreSQL

  5. Rails Console намира потребители по масив от идентификатори