PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Pole Django DateTime do generowania pól znacznika czasu bez strefy czasowej OUT

Typy danych dla postgres w Django są mapowane na literał ciągu znaków timestamp with time zone i wydaje się, że nie ma możliwości zmiany tego typu.

O ile mi wiadomo, masz trzy opcje:

  1. Skorzystaj z zaczepu Django do wykonywania surowych sql po instrukcji create table . Aby to zrobić, utwórz katalog o nazwie sql w Twojej aplikacji i plik w tym katalogu o nazwie mymodel.postgres_psycopg2.sql . Umieść tam swoje instrukcje alter table.

  2. Napisz niestandardowe pole, aby zdefiniować modyfikatory pola sygnatury czasowej według własnego uznania. Zobacz „pisanie niestandardowych pól modelu

  3. Pozostaw pole django bez zmian i wykonaj konwersję strefy czasowej w swojej aplikacji, aby mieć całkowitą pewność, że mijasz właściwy czas.

Moje osobiste preferencje dotyczące integralności danych to #3. Podobnie jak w przypadku kodowania znaków, gdzie zawsze chcesz mieć pewność, że znasz zestaw znaków i poprawnie obsługujesz konwersje, czuję się znacznie bardziej komfortowo z datami/czasami, których atrybuty (w tym TZ) są tak precyzyjnie zdefiniowane, jak to tylko możliwe. Możesz być pewien, że dzisiaj wszystkie Twoje dane wejściowe trafiają do Twojej aplikacji już w czasie UTC, ale może się to zmienić, szczególnie jeśli znaczniki czasu są dostarczane przez użytkowników końcowych. Jeśli jest to warte, zrobiłbym wszystko, aby przekonwertować znacznik czasu w aplikacji na UTC i zapisać go w bazie danych z UTC jako strefą czasową.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak znaleźć ścieżkę pg_config

  2. Czy istnieje skrót do SELECT * FROM?

  3. Nie można utworzyć nowej bazy danych za pomocą pgadmin4

  4. Rekordy PostgreSQL CTE jako parametry do działania

  5. SQL — Utwórz widok z wielu tabel