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

date_trunc khoảng thời gian 5 phút trong PostgreSQL

SELECT date_trunc('hour', date1) AS hour_stump
     , (extract(minute FROM date1)::int / 5) AS min5_slot
     , count(*)
FROM   table1
GROUP  BY 1, 2
ORDER  BY 1, 2;

Bạn có thể GROUP BY hai cột:dấu thời gian được cắt ngắn thành giờ và thời điểm 5 phút.

Ví dụ tạo ra các vị trí 0 - 11 . Thêm 1 nếu bạn thích 1 - 12 .
Tôi truyền kết quả của extract() thành số nguyên, vì vậy phép chia / 5 cắt bớt chữ số phân số. Kết quả:
phút 0 - 4 -> khe 0
phút 5 - 9 -> khe 1
v.v.

Truy vấn này chỉ trả về giá trị cho các khoảng thời gian 5 phút mà các giá trị được tìm thấy. Nếu bạn muốn một giá trị cho mọi vị trí hoặc nếu bạn muốn có số tiền chạy khoảng thời gian hơn 5 phút, hãy xem xét câu trả lời có liên quan này:

  • PostgreSQL:số hàng đang chạy cho truy vấn 'theo phút'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tìm hiểu xem một bản nâng cấp có phải là bản cập nhật với PostgreSQL 9.5+ UPSERT hay không?

  2. Nhận các giá trị mặc định của các cột trong bảng trong Postgres?

  3. sql ĐẶT HÀNG BẰNG nhiều giá trị theo thứ tự cụ thể?

  4. Sắp xếp các giá trị NULL vào cuối bảng

  5. Kết nối PostgreSQL Pooling với PgBouncer