【问题标题】:What is the "correct" way for handling date/time conversions for database?处理数据库日期/时间转换的“正确”方法是什么?
【发布时间】:2012-10-18 07:24:42
【问题描述】:

我有一个 PHP 站点,它以人类形式从用户那里获取日期(例如 2012-10-18 或类似的日期)并将它们存储在数据库中。在数据库中,它们存储为 unix 时间戳。我可以使用 PHP 函数进行转换,只存储/检索时间戳,或者我可以使用 SQL/数据库函数在查询中进行转换,并存储/检索格式化的日期。
是否有理由更喜欢一种方法而不是另一种?其中之一是否更“正确”(关注点分离等)?

【问题讨论】:

  • 我个人将依赖数据库函数转换,它在某种程度上更快并且在您的脚本中产生的开销更少。

标签: php database date


【解决方案1】:

使用数据库中的日期。数据库能够计算偶数,因此没有理由在您的 PHP 脚本中进行这种类型的处理。也许如果你不想这样做,一个有效的论点可能是因为你的查询由于其中的逻辑而变得有点复杂。

【讨论】:

    【解决方案2】:

    恕我直言,这两种方法在性能方面没有区别,但使用 PHP 转换/格式化 sql-dates 具有更简洁的代码和本地化能力的优势。

    【讨论】:

      【解决方案3】:

      我发现在 SQL 中尝试处理用户时区很复杂(至少在 SQLite 中,不确定其他数据库是否在其日期函数中具有更好的时区支持),因此 PHP 似乎是处理此问题的更好地方。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-23
        • 1970-01-01
        • 2011-05-23
        • 1970-01-01
        • 2021-07-06
        • 1970-01-01
        • 2011-12-17
        相关资源
        最近更新 更多