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

dev*_*234 1 php mysql sql database date

我正在使用MYSQL数据库,想知道这是一个很好的做法.

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

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

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

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

小智 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
Run Code Online (Sandbox Code Playgroud)