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

django nhận được tháng kể từ ngày tổng hợp

Bạn đã thử nhìn vào lược đồ của mình chưa? Tôi nghĩ rằng bạn vừa nhầm tên cột của mình.

Giả sử bạn đang sử dụng Djnago> =1.8, bạn cũng có thể tránh toàn bộ vấn đề bằng cách viết Func như thế này:

class ExtractMonth(Func):
    template = "EXTRACT(MONTH FROM %(expressions)s)"

    def __init__(self, *expressions, **extra):
        extra['output_field'] = SmallIntegerField()
        super().__init__(*expressions, **extra)
       

và sử dụng nó như thế này:

Subscription.objects.annotate(Month=ExtractMonth('Modified'))\
                .values('Month').annotate(Count('Month'))

Bằng cách này 'Modified' là tên của trường trên mô hình của bạn và Django phân giải tên cột cho bạn.

Cập nhật

Có một giải pháp chung chung hơn được đề xuất trong phiếu 1.9 này .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xác thực các bản sao lưu PostgreSQL của bạn trên Docker

  2. Rails 5.2 ActiveStorage với UUID trên Postgresql

  3. Cách viết SQL khi di chuyển trong Rails

  4. Cấp đặc quyền cho một cơ sở dữ liệu cụ thể trong PostgreSQL

  5. Truy vấn SQL sử dụng IN với danh sách rất chậm