Tôi không chắc bạn đang tìm kiếm thứ gì tương đương, nhưng:
- không có độ chính xác nano giây
trong PostgreSQL: Phạm vi cho phép của p (precision) là từ 0 đến 6 cho
timestamp
vàinterval
các loại. - một số phần ngày bao gồm các phần khác:tức là
milliseconds
chứaseconds
µseconds
chứamilliseconds
(và do đóseconds
quá).
Nếu bạn đang tìm kiếm các giá trị tách biệt một cách hợp lý, bạn sẽ cần thực hiện một số phép toán, ví dụ:
select extract(dow from ts) dow, -- day-of-week (where weeks start on sunday, which is 0)
extract(isodow from ts) isodow, -- ISO day-of-week (where weeks start on monday, which is 1)
floor(extract(seconds from ts))::int only_seconds,
floor(extract(milliseconds from ts))::int - 1000 * floor(extract(seconds from ts))::int only_milliseconds,
floor(extract(microseconds from ts))::int - 1000 * floor(extract(milliseconds from ts))::int only_microseconds,
extract(microseconds from ts) all_microseconds
Hoặc, nếu bạn đang xem dấu thời gian còn bao xa trong tuần thực tế của nó, bạn có thể sử dụng timestamp
(và interval
) số học nữa:
select ts - date_trunc('week', ts) time_elapsed_since_monday
(Mặc dù khá khó để tính toán điều này cho các tuần bắt đầu vào chủ nhật:date_trunc
chỉ hoạt động với ISO tuần).
http://rextester.com/SOOO48159