【问题标题】:Setting column DATA TYPE for Timestamp, from PHP to MySQL为时间戳设置列 DATA TYPE,从 PHP 到 MySQL
【发布时间】:2011-12-24 10:55:03
【问题描述】:

我正在使用 '$timestamp=time();' php中的函数来设置当前时间。

无论如何 - 我应该在 mysql 中为该列的定义使用什么?是int吗?别的东西?有多少空间?

谢谢!

【问题讨论】:

    标签: php mysql types timestamp


    【解决方案1】:

    MySQL 确实有一个可以使用的本机 DateTime 类型,或者您可以将 unix 时间戳存储为 INT。两者之间存在细微差别。如果您想在查询中进行任何日期操作(例如检索上周的所有条目),那么 MySQL 的本机列类型可能是最好的。无论哪种方式,您都可能需要考虑如何处理时区 - 即使您认为它现在不相关,它也可能更进一步(例如仅处理 DST)。有一整本书是关于用 PHP (PHPArch book on Date and Time) 处理日期和时间的。我自己(还没有)读过它,但作者 Derrick Rethans 几乎知道关于这个主题的所有知识。

    【讨论】:

    • 谢谢,我知道,但想专门通过 php 函数来完成。你也提出了很好的观点。无论如何我理解你的答案是INT?
    • 你知道应该设置多长时间吗?
    • 取决于您需要处理的日期范围。我很确定 UNSIGNED INT 将处理 PHP unix 时间戳可以在 32 位系统上处理的所有值。如果您想更进一步,或者您正在使用 PHP 的 DateTime 类,您可能需要检查一下。 MySQL 的 DATE 字段几乎可以处理未来的任何日期。
    • 嘿,更新:我尝试了 DATE,但它不起作用(保存了一堆零而不是时间戳)。我正在使用 INT,它似乎工作正常。谢谢!
    • 如果您使用 DATE 字段,您需要在将日期发送到 MySQL 之前将其格式化为 YYYY-MM-DD。对于 DATETIME 字段,它是 YYYY-MM-DD HH:MM:SS。
    【解决方案2】:

    如果您希望将插入/更新查询的时间包含到 mysql 数据库中,您可以直接使用 MySQL 来实现。这个链接应该有帮助。 Click Here。要解决您的问题,请检查子标题下的内容 - 使用当前时间戳创建表格。一切顺利。

    【讨论】:

    • 我知道,我想专门用php。看这里:link 感谢您的参考,我正在检查。
    猜你喜欢
    • 1970-01-01
    • 2015-02-04
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多