sql >> データベース >  >> RDS >> PostgreSQL

postgresqlにnanosecでタイムスタンプを保存する最もエレガントな方法は何ですか?

    numericを使用する nanoタイムスタンプの基本タイプとして。この関数は、数値をテキストのタイムスタンプ表現に変換します。

    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. PostgreSQLに条件付き一意インデックスを追加する方法

    2. MapReduceがHadoopでどのように機能するか

    3. SQLServerで文字列の左または右から特定の数の文字を選択する方法

    4. MariaDBデータベースのすべてのビューを一覧表示する4つの方法