【发布时间】:2021-12-04 11:59:25
【问题描述】:
我在 MySQL 文档中读到,如果我不知道月份或日期,我可以使用 00 存储生日,这正是我需要的,但这仅对旧 MySQL 版本或某些选项有效开启了吗?
MySQL 允许您将日期存储在日期或月份和日期所在的位置 DATE 或 DATETIME 列中的零。这对应用程序很有用 需要存储您可能不知道确切日期的生日 日期。在这种情况下,您只需将日期存储为“2009-00-00”或 '2009-01-00'。
来源:https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html
我在运行播种机时得到这个。
SQLSTATE[22007]:日期时间格式无效:1292 日期值不正确: 第 1 行的“birth_date”列的“1806-00-00”
还有其他解决这个问题的建议吗?
【问题讨论】:
-
也许这并不理想,但您可以将日期分成 3 个字段,例如年、月、日,并使它们可以为空。缺点是您需要在需要进行任何日期操作时转换为日期
-
这就是我最终所做的,但如果月份和日期为空,则使用第四个索引日期字段获取“YYYY-01-01”。
-
我建议将
day/month/year存储为单独的列,并使月/日可以为空。 -
@meagar 谢谢!什么列类型?
标签: mysql sql laravel date datetime