Php 对于存储日期的MySQL INT字段,使用0或NULL作为默认值更好吗?

Php 对于存储日期的MySQL INT字段,使用0或NULL作为默认值更好吗?,php,mysql,null,int,default,Php,Mysql,Null,Int,Default,我必须在MySQL中的日期/时间记录中使用INT,因此我正在尝试找出是否最好使用0或NULL作为这些字段的默认值。我们正在迁移,数据是0000-00-00:00:00,Unix时间戳,0,NULL,false,等等,所以我正在通过PHP strotime()和date()函数转换所有内容,但在insert时会得到奇怪的结果 最终我可以在PHP中得到一些可用的东西,但我不确定在MySQL中使用哪个作为默认值更好 0是一个值NULL缺少值 使用NULL如果要表示没有值,应使用NULL。大纪元时间中的

我必须在MySQL中的日期/时间记录中使用INT,因此我正在尝试找出是否最好使用0或NULL作为这些字段的默认值。我们正在迁移,数据是0000-00-00:00:00,Unix时间戳,0,NULL,false,等等,所以我正在通过PHP strotime()和date()函数转换所有内容,但在insert时会得到奇怪的结果


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

0
是一个值
NULL
缺少值


使用
NULL

如果要表示没有值,应使用
NULL
。大纪元时间中的0等于1970年1月1日的午夜。因此,根据对您情况的描述,我建议使用
Null


我发现使用NULL会阻止将日期或整数选择为“小于此值”,因为MySQL在此上下文中不会比较整数和NULL。当我将它们设置为0作为默认值时,它们出现在select中,这正是我们想要的。我不确定这在将来会导致什么复杂情况(我们可能需要找到替代解决方案),但现在它为我们提供了我们想要的数据。

不确定这是否重要,只要您保持一致。我们通常使用null。