【问题标题】:Is it better to use 0 or NULL as the default for MySQL INT fields that store dates?使用 0 或 NULL 作为存储日期的 MySQL INT 字段的默认值会更好吗?
【发布时间】:2013-01-12 08:22:46
【问题描述】:

我必须在 MySQL 中的日期/时间记录中使用 INT,因此我试图弄清楚使用 0 还是 NULL 作为这些字段的默认值是否更好。我们正在迁移,数据以 0000-00-00 00:00:00、Unix 时间戳、0、NULL、false 等形式传入,所以我通过 PHP strtotime() 和 date() 转换所有内容函数,但在插入时得到奇怪的结果。

最终我可以得到一些可以在 PHP 中使用的东西,但我不确定在 MySQL 中作为默认值是否更好。

【问题讨论】:

  • 不确定它是否重要,只要您始终如一。我们通常使用 null。

标签: php mysql null int default


【解决方案1】:

0 是一个值。 NULL 缺少值。

使用NULL。

【讨论】:

    【解决方案2】:

    如果你想表达一个值的缺失,你应该使用Null。纪元时间中的 0 等于 1970 年 1 月 1 日午夜。因此,根据您对情况的描述,我建议使用Null。

    http://www.epochconverter.com/

    【讨论】:

      【解决方案3】:

      我发现使用 NULL 可以防止将日期或整数选择为“小于这个”,因为 MySQL 在这种情况下不会比较整数和空值。当我将它们设置为默认值 0 时,它们出现在选择中,这正是我们想要的。我不确定这会在未来引起什么复杂情况(我们可能需要寻找替代解决方案),但现在它可以为我们提供我们想要的数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-05
        • 2014-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-05
        相关资源
        最近更新 更多