【问题标题】:Django autoconversion of strings to datetimesDjango将字符串自动转换为日期时间
【发布时间】:2016-10-23 21:21:24
【问题描述】:

使用 SQLite 进行测试,Django 会在保存到数据库时自动将字符串转换为日期时间,但会丢弃来自无效字符串的更新而不会出错。这种行为在所有 Django 数据库后端是否一致?这是在哪里记录的?另外,如何确定我从外部源(不是 Django 表单)收到的字符串形式的日期时间是否对 Django 的数据库有效?

查看代码,django.utils.dateparse.parse_datetime 似乎是 Django 在其 SQLite 数据库后端中使用的内容。其他数据库后端似乎没有使用它,它也不与 Django 表单使用的 DATETIME_INPUT_FORMATS 交互。

【问题讨论】:

    标签: python django sqlite datetime


    【解决方案1】:

    SQLite 没有专门用于存储日期的存储类 和/或时间。相反,SQLite 的内置日期和时间函数 能够将日期和时间存储为 TEXT、REAL 或 INTEGER 价值观

    https://www.sqlite.org/datatype3.html#section_2_2

    因此,这种行为与 PostgreSQL 和 mysql 非常不同,两者恰好都有单独的日期、时间和日期时间数据类型。

    所以“这种行为在所有 Django 数据库后端是否一致?”的答案是否定的

    这是在哪里记录的?”参考上面的链接

    另外,我如何确定我从外部来源(不是 Django 表单)收到的字符串形式的日期时间是否对 Django 的数据库有效?”这取决于。如果您对从外部来源收到的特定日期和时间有疑问,我会建议一个单独的问题。

    【讨论】:

      猜你喜欢
      • 2018-05-25
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 2014-12-13
      • 2022-08-18
      • 2017-08-31
      相关资源
      最近更新 更多