タイムゾーンのない時間に倍精度型にキャストすることはできません。ProgrammingError:私は、次のモデルとDjangoのアプリを持っている
File "/home/icar/E-Django/venv/local/lib/python2.7/site-packages/django/db/utils.py", line 95, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/epicar/E-Django/venv/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: cannot cast type double precision to time without time zone
:
class Event(models.Model):
# id = models.IntegerField(primary_key=True)
event_type = models.ForeignKey(
EventType,
on_delete=models.DO_NOTHING,
# we don't want to delete anything in the StatusType table.
blank=True,
null=True,
)
reason_code = models.IntegerField(default=0)
elapsed_time = models.IntegerField(default=0)
event_at = models.DateTimeField("Event Time", blank=True, auto_now_add=True)
object_id = models.ForeignKey(Machine, on_delete=models.DO_NOTHING,)
count = models.BigIntegerField(blank=True, null=True)
position = models.IntegerField(blank=True, null=True)
rfid_tag = models.ForeignKey(Employee, blank=True, null=True, on_delete=models.DO_NOTHING,
verbose_name='User Name')
hidden = models.BooleanField(default=False) # for hiding from lists
# def __str__(self): # __unicode__ on Python 2
# return self.event_type
class Meta:
verbose_name = 'event'
verbose_name_plural = 'Events'
def __str__(self):
return str(self.id)
簡単な移行を実行しようとしますが、私はこのエラーを得続けます
この問題は、タイムゾーンなしで倍精度に時間を詰め込もうとしているのですが、わかりません。私はそれが欲しくない。私は他に何を試みるかについてはあまりよく分かりません。私は、次の操作を実行しようとしている:
SELECT CAST(elapsed_time as double precision) FROM event;
私も整数にelapsed_timeのフィールドを変更しようとした(代わりに、倍精度の整数を参照)と同じエラーを得ました。だから私はそれがその特定の分野であることを知っています。
すべての移行を削除して新しく起動しようとしました。それはうまくいかなかった。
アイデア?
更新:pgAdminでからの経過フィールドのプロパティ:
これは正確には何ですか? – Nicoale
エポックからの秒数(1970-01-01 00:00:00)または間隔からの秒数を取得します。タイムスタンプまたは間隔を倍精度にする方法は1つだけです –
hmmm ...そのフィールドに入るデータは技術的に経過秒です。それはそれがエラーをスローする原因になるだろうか?実際のタイムスタンプは取得していません。我々はしたくない。経過秒数を表示して、計算を行うことができます。単純な数値(時間フィールドではありません)の形で表します。私はあなたが時間欄で計算を行うことができることを知っています。 – Nicoale