存储生日的最佳场地是什么?

时间:2012-04-30 19:39:49

标签: mysql

我必须在我的mysql数据库中存储用户的生日(如12-11-1990)。

我必须使用哪种字段来存储它?

5 个答案:

答案 0 :(得分:19)

要存储日期,您应该use a date。引用文档:

  

DATE类型用于具有日期部分但没有时间部分的值。

答案 1 :(得分:10)

您可以将其存储为DATE对象,就像通常使用非重复日期一样。如果您正在使用MySQL(我相信其他DBMS也有此功能),您可以使用MySQL here所述的MySQL函数检索生日:

SELECT * 
FROM table_name 
WHERE 
    MONTH(date_field) = desired_month AND 
    DAY(date_field) = desired_day

在处理数千条记录时,此方法可能会有点慢。如果是这种情况,您可以使用3个独立的INT存储生日,每个INT一个(年,月,日)。然后你搜索这样的生日:

SELECT *
FROM table_name
WHERE
   month_field = desired_month AND
   day_field = desired_day

如果您使用最后一种方法,我建议您同时存储生日的DATETIME版本,以便您可以在不进行任何操作的情况下构建日期。您还可以索引3个字段中的每一个(非唯一),因此检索它们的速度更快。

答案 2 :(得分:4)

“DATE”应该是好的。

  

DATE类型用于具有日期部分但没有时间部分的值。   MySQL以'YYYY-MM-DD'格式检索并显示DATE值。该   支持的范围是'1000-01-01'到'9999-12-31'。

更多详情:http://dev.mysql.com/doc/refman/5.5/en/datetime.html

答案 3 :(得分:4)

您应该将日期存储为DATE。

区域设置作为varchar(PHPJava)。

不要忘记Locale:)

当它还不是你的生日时,没有什么比从微博(中文推特)那样获得电子邮件的了。

答案 4 :(得分:1)

DATE太明显了吗?