我正在使用MYSQL数据库,想知道这是一个好习惯。
方式1 - 在DB中使用列类型作为时间戳。即包含2012-11-13 00:00:00等值 方式2 - 使用列作为日期。即将在数据库中包含类似2012-11-13的值。
这里的问题是,存储DOB。我们真的需要时间戳作为列类型吗?在我看来,DOB也不需要时间段(00:00:00)。
它应该是时间戳,因为我们可以将值存储为隐藏,因此即使有人看到数据库,也没有人可以查看它。要查看,我们必须使用php中的strtotime()。
请告诉我将DOB存储在数据库中的正确方法。
答案 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