我必须在 MySQL 的日期/时间记录中使用 INT,所以我试图弄清楚使用 0 还是 NULL 作为这些字段的默认值是否更好。我们正在迁移,数据以 0000-00-00 00:00:00、Unix 时间戳、0、NULL、false 等形式传入,所以我正在通过 PHP strtotime() 和 date() 转换所有内容功能,但在插入时得到奇怪的结果。
最终我可以得到一些在 PHP 中可用的东西,但我不确定在 MySQL 中作为默认值是否更好。
0
是一个值。NULL
是缺乏价值。
使用NULL
.
我发现使用 NULL 可以防止将日期或整数选择为“小于这个”,因为 MySQL 在这种情况下不会比较整数和空值。当我将它们设置为默认值 0 时,它们出现在选择中,这正是我们想要的。我不确定这会在未来引起什么并发症(我们可能需要找到替代解决方案),但现在它为我们提供了我们想要的数据。
如果你想表达一个值的缺失,你应该使用Null
. 纪元时间中的 0 等于 1970 年 1 月 1 日午夜。因此,根据您对情况的描述,我建议使用Null
.