PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách thanh lịch nhất để lưu trữ dấu thời gian với nanosec trong postgresql là gì?

Sử dụng numeric như một loại dấu thời gian nano cơ bản. Hàm chuyển đổi một giá trị số thành biểu diễn dấu thời gian dạng văn bản của nó:

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

Bạn cũng có thể dễ dàng chuyển đổi các giá trị số thành dấu thời gian thông thường trong trường hợp không cần độ siêu chính xác, ví dụ:

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. Cách đặt giá trị của trường biến tổng hợp bằng SQL động

  2. Công bố repmgr 2.0

  3. Giám sát phân phối Percona cho PostgreSQL - Các chỉ số chính

  4. Triển khai và bảo trì PostgreSQL với Ansible

  5. Trong Rails, Không thể tạo cơ sở dữ liệu cho {adapter => postgresql,