sql >> データベース >  >> RDS >> PostgreSQL

タイムゾーンなしでタイムスタンプフィールドを生成するDjangoDateTimeフィールド

    Djangoのpostgresのデータ型は、文字列リテラルのtimestamp with time zoneにマップされます。 、そしてそのタイプを変更するオプションはないようです。

    私の知る限り、次の3つのオプションがあります。

    1. rawを実行するためにDjangoのフックを利用しますcreatetableステートメントの後のsql 。これを行うには、sqlというディレクトリを作成します アプリ内とそのディレクトリ内のmymodel.postgres_psycopg2.sqlというファイル 。そこにaltertableステートメントを配置します。

    2. カスタムフィールドを作成して、適切と思われるタイムスタンプフィールドの修飾子を定義します。 「カスタムモデルフィールドの作成」を参照してください。 "。

    3. djangoフィールドはそのままにして、アプリケーションでタイムゾーン変換を実行し、正しい時間を通過していることを絶対に確認します。

    私の個人的なデータ整合性の好みは#3です。文字セットを常に理解し、変換を適切に処理していることを常に確認したい文字エンコードの場合と同様に、属性(TZを含む)が可能な限り正確に定義されている日付/時刻の方がはるかに快適です。今日、すべての入力がすでにUTCでアプリに送信されていることは確かかもしれませんが、特にタイムスタンプがエンドユーザーによって提供されている場合は、変更される可能性があります。その価値については、さらに一歩進んで、アプリのタイムスタンプをUTCに変換し、UTCをタイムゾーンとしてDBに保存します。




    1. サブクエリを使用したOraclePIVOT句の例

    2. ストリークMySQLクエリに参加する

    3. mysql_escape_stringが非常に推奨されないのはなぜですか?

    4. SQLiteは頻繁なSELECTクエリでデータベースファイル(コード14)を開くことができません