在MySQL中存储出生日期

t0m*_*t0m 4 mysql mysqli mysql-workbench

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

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

要么

将DOB值分别存储在不同的字段中,例如一个字段中的Day,另一个字段中的Month,以及另一个字段中的Year?

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

非常感谢您的回答。

Ed *_*bbs 6

我会说总是将日期存储为一种DATE类型。MySQL具有许多日期函数,这些函数将计算时间跨度,按您希望的格式设置日期,并为您提取部分日期。

举例来说,如果您只需要一个月,请执行MONTH(DOB)

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


NIN*_*OOP 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
Run Code Online (Sandbox Code Playgroud)