PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bidang Django DateTime untuk menghasilkan bidang stempel waktu tanpa zona waktu

Tipe data untuk postgres di Django memetakan ke string literal timestamp with time zone , dan sepertinya tidak ada opsi untuk mengubah jenis itu.

Sejauh yang saya ketahui, Anda memiliki tiga opsi:

  1. Manfaatkan hook Django untuk mengeksekusi raw sql setelah pernyataan buat tabel . Untuk melakukan ini, buat direktori bernama sql di aplikasi Anda dan file di direktori itu bernama mymodel.postgres_psycopg2.sql . Tempatkan pernyataan tabel alter Anda di sana.

  2. Tulis bidang khusus untuk menentukan pengubah bidang stempel waktu sesuai keinginan Anda. Lihat "menulis bidang model khusus ".

  3. Biarkan bidang django apa adanya, dan lakukan konversi zona waktu dalam aplikasi Anda sehingga Anda benar-benar yakin Anda melewati waktu yang tepat.

Preferensi pribadi saya untuk integritas data adalah #3. Sama seperti pengkodean karakter, di mana Anda selalu ingin memastikan bahwa Anda mengetahui rangkaian karakter dan menangani konversi dengan benar, saya merasa jauh lebih nyaman dengan tanggal/waktu yang atributnya (termasuk TZ) didefinisikan sejelas mungkin. Anda mungkin yakin hari ini bahwa semua masukan Anda sudah masuk ke aplikasi Anda dalam UTC, tetapi itu mungkin berubah, khususnya jika stempel waktu diberikan oleh pengguna akhir. Untuk apa nilainya, saya akan bekerja ekstra, mengonversi stempel waktu di aplikasi ke UTC, dan menyimpannya di DB dengan UTC sebagai zona waktu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang setara dengan LISTAGG (database Oracle) di PostgreSQL?

  2. Apakah lebih baik membuat indeks sebelum mengisi tabel dengan data, atau setelah data ada?

  3. Bangun wadah buruh pelabuhan postgres dengan skema awal

  4. Cara bermigrasi dari SQLite ke PostgreSQL (Rails)

  5. Kesalahan saat mendorong data ke Heroku:perpindahan zona waktu di luar jangkauan