php - 用可选年份存储生日(生日)字段的最佳方法是什么

标签 php mysql sql cakephp

我有 mysql 数据库,以生日列作为日期。

保存到此列的最佳方式是什么,年份是可选的。我应该随便放一些年份吗?在数据库中保存生日的最佳做法是什么。

我在 cakephp 中创建了 3 个文本字段,日、月和年..但不确定如何处理这个,以保存在数据库中,因为如果我随机输入年份(可能是 0001,因为 0000 不被接受),当我把它拉回来时,它会显示年份。

最佳答案

只是一个意见,但如果年份是可选的(有些会有它;有些不会)我会使用 DATE 类型并将年份设置为零。您可以像这样检查没有年份的生日:

SELECT * FROM myTable WHERE YEAR(birthdate) = 0

或者,如果 birthdate 列被索引,请改用它,因为它是可优化的:

SELECT * FROM myTable WHERE birthdate <= '0000-12-31'

如果所有值都禁止使用年份 - 换句话说,您永远不会存储年份 - 我建议使用单独的月份和日期列。

关于php - 用可选年份存储生日(生日)字段的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20432497/

相关文章:

javascript - 我想打开一个新选项卡而不是弹出窗口

sql - regexp_replace 配置单元中的正则表达式

javascript - 根据状态更改 JSON HTML 表格单元格颜色

sql - 如果源数据库和目标数据库在不同的服务器上,我们可以运行 MERGE 语句吗

sql - 无法用 SQL UNION 查询替换表名

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - 如何确保显示服务器错误?

php - MySQL INSERT 查询返回 "You have an error in your SQL syntax"错误

c# - 带有 Entity Framework 6 的 MySQL

mysql - 通过 R 中的所有表运行 MySQL 查询