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

xRo*_*bot 21 mysql

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

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

oez*_*ezi 20

要存储日期,您应该使用日期.引用文档:

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


Tia*_*ago 10

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

SELECT * 
FROM table_name 
WHERE 
    MONTH(date_field) = desired_month AND 
    DAY(date_field) = desired_day
Run Code Online (Sandbox Code Playgroud)

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

SELECT *
FROM table_name
WHERE
   month_field = desired_month AND
   day_field = desired_day
Run Code Online (Sandbox Code Playgroud)

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

  • 包括2月29日生日,3月1日为非闰年. (2认同)

Bee*_*han 6

“日期”应该不错。

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

更多细节:http : //dev.mysql.com/doc/refman/5.5/en/datetime.html


Ada*_*ent 5

您应该将日期存储为 DATE。

并且 Locale作为 varchar (PHPJava)。

不要忘记语言环境:)

没有什么比在你生日还没有时从微博(中国推特)之类的东西收到电子邮件更合适的了。