出生日期保存到具有时间戳或日期列类型的MYSQL DB

时间:2013-11-29 06:23:21

标签: php mysql sql database date

我正在使用MYSQL数据库,想知道这是一个好习惯。

方式1 - 在DB中使用列类型作为时间戳。即包含2012-11-13 00:00:00等值 方式2 - 使用列作为日期。即将在数据库中包含类似2012-11-13的值。

这里的问题是,存储DOB。我们真的需要时间戳作为列类型吗?在我看来,DOB也不需要时间段(00:00:00)。

它应该是时间戳,因为我们可以将值存储为隐藏,因此即使有人看到数据库,也没有人可以查看它。要查看,我们必须使用php中的strtotime()。

请告诉我将DOB存储在数据库中的正确方法。

1 个答案:

答案 0 :(得分:6)

我建议使用DATE。

TIMESTAMP的范围为'1970-01-01 00:00:01'到'2038-01-19 03:14:07'(UTC),因此在大多数情况下它不适合DOB。

可以使用DATETIME,但您应该问自己:您是否希望用户填写出生时间?如果不是 - 请使用DATE。

通常这不是什么大问题,但您也可以考虑所需的存储空间:

DATE:      3 bytes 
TIMESTAMP: 4 bytes
DATETIME:  8 bytes