sql >> Database >  >> RDS >> PostgreSQL

Wat is de meest elegante manier om een ​​tijdstempel met nanosec op te slaan in postgresql?

Gebruik numeric als een basistype van nano-tijdstempels. De functie converteert een numerieke waarde naar de tekstuele tijdstempelweergave:

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'))
$$;

U kunt numerieke waarden ook gemakkelijk converteren naar normale tijdstempels in gevallen waarin de superprecisie niet nodig is, bijvoorbeeld:

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. JLabel bijwerken via SetIcon van bytea-gegevenstype in postgres

  2. Hoe bekijk je ALLE tekst van een ntext of nvarchar (max) in SSMS?

  3. Fout bij laden van MySQLdb-module 'Heb je mysqlclient of MySQL-python geïnstalleerd?'

  4. Verzamel prestatiegegevens met behulp van SQLDiag Tool | Problemen met SQL Server-prestaties oplossen -6