我有两个选项可以在MySQL中存储DOB(出生日期)。以下哪种方法比较好?
在MySQL中使用Date Type存储DOB,
OR
将DOB值分别存储在不同的字段中,例如Day在一个字段中,月份在另一个字段中,一年中存储在另一个字段中?
如果客户想要只显示月份和日期,是否可以检索它,如果我们将DOB存储在MySQL的日期类型中?
非常感谢您的回答。
答案 0 :(得分:4)
我会说总是将日期存储为DATE
类型。 MySQL有一个date functions的主机,可以计算时间跨度,格式化日期然后你想看到它,并为你提取日期的部分。
例如,如果您只需要月份,请执行MONTH(DOB)
。
如果您需要更有说服力,请查看StackOverflow,您会看到有数百条(如果不是数千条)问题的人因为日期值存储为字符串而遇到问题。
答案 1 :(得分:2)
DATE类型用于具有日期部分但没有时间部分的值。 MySQL以'YYYY-MM-DD'格式检索并显示DATE值。支持的范围是'1000-01-01'到'9999-12-31'。
您可以使用某些Date Functions查询:
SELECT *
FROM table
WHERE
MONTH(date_column) = desired_month AND
DAY(date_column) = desired_day
答案 2 :(得分:2)
日期逻辑很棘手。如果您可以使用已经调试过的内置类型,则应该使用它。从日期列中检索月份是相当直接的。