4

我有两个选项可以将 DOB(出生日期)存储在 MySQL 中。以下哪种方法更好?

在 MySQL 中使用日期类型存储 DOB ,

或者

将 DOB 值分别存储在不同的字段中,例如一个字段中的日、另一个字段中的月份和另一个字段中的年份?

如果客户端只想显示月份和日期,如果我们将 DOB 存储在 MySQL 的日期类型中,是否可以检索它?

4

3 回答 3

7

我会说总是将日期存储为一种DATE类型。MySQL 有许多日期函数,它们将计算时间跨度,格式化日期,但你想看到它,并为你提取日期片段。

例如,如果您只需要月份,只需执行MONTH(DOB).

如果您需要更有说服力,请查看 StackOverflow,您会看到数百个(如果不是数千个)由于日期值存储为字符串而遇到问题的人提出的问题。

于 2013-06-13T15:27:31.403 回答
5

使用日期

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

您可以使用一些日期函数进行查询:

SELECT * 
FROM table 
WHERE 
   MONTH(date_column) = desired_month AND 
   DAY(date_column) = desired_day
于 2013-06-13T15:27:15.613 回答
3

日期逻辑很棘手。如果您可以使用已经调试过的内置类型,则应该使用它。从日期列中检索月份是相当简单的。

于 2013-06-13T15:28:19.617 回答