PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Django DateTime поле за генериране на полета за клеймо за време без часова зона

Типовете данни за postgres в Django се съпоставят с низовия литерал timestamp with time zone и изглежда няма опция за промяна на този тип.

Доколкото ми е известно, имате три възможности:

  1. Възползвайте се от куката на Django за изпълнение на raw sql след израза за създаване на таблица . За да направите това, създайте директория, наречена sql във вашето приложение и файл в тази директория, наречен mymodel.postgres_psycopg2.sql . Поставете вашите изрази за алтер таблица там.

  2. Напишете персонализирано поле, за да дефинирате модификаторите за полето за клеймо за време, както сметнете за добре. Вижте "записване на персонализирани полета за модел ".

  3. Оставете полето django така, както е, и извършете преобразуването на часовата зона във вашето приложение, така че да сте абсолютно сигурни, че предавате правилното време.

Моето лично предпочитание за целостта на данните е #3. Точно както при кодировките на знаци, където винаги искате да сте сигурни, че знаете набора от знаци и обработвате преобразувания правилно, аз се чувствам много по-комфортно с дати/часове, чиито атрибути (включително TZ) са толкова прецизно дефинирани, колкото могат да бъдат. Днес може да сте сигурни, че всичките ви въведени данни идват в приложението ви вече в UTC, но това може да се промени, особено ако времевите клейма се предоставят от крайните потребители. Колкото и да си струва, бих положил повече усилия, бих преобразувал клеймото за време в приложението в UTC и го съхрани в базата данни с UTC като часова зона.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите еквивалент на командата postgres 'nth_value' в pyspark Hive SQL?

  2. Поставяне на изход от Postgres \i input във файл?

  3. Актуализация на JSONB масив за конкретен елемент

  4. Какво се е променило между postgres jdbc 8.4 и 9 по отношение на bytearrays?

  5. Грешка в безизходица в израза INSERT