我正在对我的一个数据库中的生日进行字符串到日期的计算。年份采用 2 位数字格式,所以显然这是我的代码:
STR_TO_DATE(dob,'%m/%d/%y')
然而,这是在很多记录上计算不正确的世纪。 IE: 出生年份应该是 1960 年,而不是 2060 年。
这是基于某种日期格式的 SQL 标准,还是我可以手动指定一个世纪截止日期?或者其他建议?
编辑: 生日示例是“09/23/62”。
返回格式为“2062-09-23”
最佳答案
根据 MySQL docs :
- 将 00-69 范围内的年份值转换为 2000-2069。
- 将 70-99 范围内的年份值转换为 1970-1999。
没有对错:因为你不提供世纪,MySQL 不得不猜测。如果猜测不是你想要的,你将不得不提供你自己的世纪。可能的解决方案取决于您的数据库架构。
关于MySQL '%y' 计算错误世纪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21387436/