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

Trích xuất ngày trong tuần, mili giây, micro giây, nano giây từ một ngày trong Postgres

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 timestampinterval 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ứa seconds &microseconds chứa milliseconds (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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres ngăn dấu thời gian với chuyển đổi múi giờ

  2. Truy vấn đệ quy trong PostgreSQL. LỰA CHỌN *

  3. Phiên bản trình điều khiển JDBC và phiên bản của DB có phải khớp chính xác không?

  4. Django ORM để lại các kết nối không hoạt động trên Postgres DB

  5. Rails mệnh đề where khi một thứ gì đó được lưu trữ dưới dạng mảng