【问题标题】:Storing date of birth in MySQL在 MySQL 中存储出生日期
【发布时间】:2013-06-13 15:24:47
【问题描述】:

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

在 MySQL 中使用Date Type 存储 DOB,

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

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

【问题讨论】:

    标签: mysql date types


    【解决方案1】:

    我会说总是将日期存储为DATE 类型。 MySQL 有一个 date functions 的主机,它们会计算时间跨度、格式化日期,并为你提取日期片段。

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

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

    【讨论】:

      【解决方案2】:

      Use a Date.

      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
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

        • 感谢您的建议
        猜你喜欢
        • 1970-01-01
        • 2014-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-20
        • 1970-01-01
        • 2015-01-14
        • 1970-01-01
        相关资源
        最近更新 更多