MySQL '%y' 计算错误世纪

标签 mysql date

我正在对我的一个数据库中的生日进行字符串到日期的计算。年份采用 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/

相关文章:

mysql - 计数总和 MySQL

php - 如何将数学函数应用于 MySQL 查询?

MySql 与 IN 子句的连接不起作用

java - Java中的玛雅历法

javascript - Javascript 中的日期转换

mysql - 是否有适用于 Linux 的 MySQL 可移植版本?

mysql - 获取每个人每天的最短日期时间的记录

mysql - 将所有日期转换为日期范围

javascript - 如何在不改变时间的情况下将 Date 对象转换为 UTC?

php - 部署到灵活的 PHP App Engine 时访问 Cloud SQL