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

Trường Django DateTime để tạo các trường dấu thời gian với múi giờOUT

Các kiểu dữ liệu cho postgres trong Django ánh xạ tới dấu thời gian timestamp with time zone và dường như không có tùy chọn nào để thay đổi loại đó.

Theo như tôi biết, bạn có ba lựa chọn:

  1. Tận dụng hook của Django để thực thi raw sql sau câu lệnh tạo bảng . Để thực hiện việc này, hãy tạo một thư mục có tên là sql trong ứng dụng của bạn và một tệp trong thư mục đó có tên là mymodel.postgres_psycopg2.sql . Đặt các câu lệnh bảng thay thế của bạn vào đó.

  2. Viết trường tùy chỉnh để xác định các công cụ sửa đổi cho trường dấu thời gian khi bạn thấy phù hợp. Xem " viết trường mô hình tùy chỉnh ".

  3. Giữ nguyên trường django và thực hiện chuyển đổi múi giờ trong ứng dụng của bạn để bạn hoàn toàn chắc chắn rằng mình đang vượt qua thời gian chính xác.

Sở thích cá nhân của tôi đối với tính toàn vẹn của dữ liệu là # 3. Cũng giống như với mã hóa ký tự, nơi bạn luôn muốn chắc chắn rằng mình biết bộ ký tự và đang xử lý chuyển đổi đúng cách, tôi cảm thấy thoải mái hơn nhiều với ngày / giờ có các thuộc tính (bao gồm TZ) được xác định chính xác nhất có thể. Hôm nay, bạn có thể chắc chắn rằng tất cả thông tin đầu vào của bạn sẽ đến ứng dụng của bạn ở UTC, nhưng điều đó có thể thay đổi, cụ thể là nếu dấu thời gian được cung cấp bởi người dùng cuối. Đối với những gì nó đáng giá, tôi sẽ đi xa hơn, chuyển đổi dấu thời gian trong ứng dụng sang UTC và lưu trữ nó trong DB với UTC là múi giờ.




  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 để cài đặt gem hoạt động trên OS X Lion với Ruby 1.8.7 mà không bị lỗi seg?

  2. Postgres JSONB đệ quy

  3. đề xuất một công cụ postgres để tìm sự khác biệt giữa lược đồ và dữ liệu

  4. Tôi có thể khôi phục giao dịch mà tôi đã cam kết không? (mất dữ liệu)

  5. Sửa chữa hỏng cơ sở dữ liệu postgresql