我必须在我的mysql数据库中存储用户的生日(如12-11-1990
)。
我必须使用哪种字段来存储它?
答案 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'。
答案 3 :(得分:4)
答案 4 :(得分:1)
DATE太明显了吗?