3

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

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

4

3 回答 3

7

0是一个值。NULL是缺乏价值。

使用NULL.

于 2013-01-28T21:26:04.390 回答
1

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

于 2013-02-17T18:02:01.450 回答
1

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

http://www.epochconverter.com/

于 2013-01-28T21:28:20.567 回答