Метка времени моделей Django в базе данных MYSQL - PullRequest
1 голос
/ 02 октября 2019

Я хочу сохранить время как метку времени Unix в моей базе данных MYSQL, у меня есть проект django с моделью:

date = models.DateField()

Но я не нашел ни models.Timestamp(), ни чего-то подобного. Есть ли способ создать столбец метки времени для MYSQL Db в Django? Я нашел некоторые статьи здесь в стеке, но им более 5 лет, так что может быть лучшее решение сейчас.

1 Ответ

0 голосов
/ 02 октября 2019

В Django для этого обычно используют DateTimeField [Django-doc] . Это столбец, в котором хранится комбинация даты и времени.

Можно позволить Django автоматически инициализировать (или обновить) метку времени, если запись построена или обновлена ​​с помощью auto_now_add=True [Django-doc] для его инициализации при создании записи и auto_now=True [Django-doc] для обновления. Таким образом, обычным явлением является представление (базовой) модели, такой как:

class TimestampModel(models.Model):
    created = models.DateTimeField(<b>auto_now_add=True</b>)
    updated = models.DateTimeField(<b>auto_now=True</b>)

    class Meta:
        abstract = True

, такой, что подклассы TimestampModel, таким образом, имеют два дополнительных столбца created и updated, которые хранят время, когдаобъект был создан и последний раз обновлен соответственно.

Столбец datetime имеет больший диапазон, как указано в документации MySQL :

Тип DATETIME используется для значений, которые содержат как дату, так и время. MySQL извлекает и отображает значения DATETIME в формате 'YYYY-MM-DD hh:mm:ss'. Поддерживаемый диапазон составляет от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'.

Тип данных TIMESTAMP используется для значений, которые содержат как дату, так и время. TIMESTAMP имеет диапазон от '1970-01-01 00:00:01' UTC до '2038-01-19 03:14:07' UTC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...