- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图根据出生日期在 MySQL 中查找日期的下一个实例 - 例如,如果出生日期是 1975-12-20 并且我们今天运行它,那么下一个生日是 2020-12-20。
同样,如果出生日期为 1975-12-19,则下一个生日为 2020-12-19,但如果出生日期为 1975-12-21,则下一个生日为 2019-12-21。
我可以在 PHP 中通过分解日期并替换年份来完成此操作,但我想尝试在 MySQL 中执行此操作,因为它运行起来会更快
DOB 是日期字段 0000-00-00
我找到了How to calculate next birthday given a date of birth?对于postgressql,我认为它可以工作,但它使用了一个名为age的函数,该函数似乎在MySQL中不起作用
最佳答案
您可以按如下方式进行日期算术:
dob
+ interval (
year(curdate())
- year(dob)
+ (dayofyear(curdate()) > dayofyear(dob))
) year
基本上,这取当前日期和出生年份之间的差值,如果当前年份的生日是过去的,则加 1。这为您提供了要添加到下一个生日的出生年数。
当到 2 月 29 日时,上述表达式将返回非闰年的 2 月 28 日。
关于MySQL 获取出生日期/生日的下一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59423789/
抱歉我的英语不好......我尝试使用 Google Apps 脚本 - 通讯录服务读取通讯录中的信息。 姓名、电子邮件、地址、电话没有问题,但我无法读取日期(我想获取联系人的出生日期)。如何读取“日
我有一个包含字段生日(DATE) 的用户表。 目前,我像这样选择生日在当前日期之前或之后 7 天内的用户: SELECT * FROM users WHERE DATE_FORMAT(birt
我是一名优秀的程序员,十分优秀!