我已经编写了 MySql 查询来查找今天、明天和昨天的生日,看起来像这样
SELECT Emp_Name,Emp_DOB FROM mldob.tbl_mldob
WHERE
(MONTH(Emp_DOB ), DAY(Emp_DOB )) = (MONTH(NOW()),DAY(curdate()-1))
OR
(MONTH(Emp_DOB ), DAY(Emp_DOB )) = (MONTH(NOW()),DAY(curdate()))
OR
(MONTH(Emp_DOB ), DAY(Emp_DOB )) = (MONTH(NOW()),DAY(curdate()+1))
;
它以 yyyy-mm-dd hh:mm:ss
格式给出结果,Emp_DOB
是 datetime
格式,但是我需要作为 dd-month
的结果,例如:31-oct
任何人都可以提供解决方案如何实现这个和上面的查询是否正确找到今天、明天和昨天的生日??
提前致谢。
最佳答案
您可以使用DATE_FORMAT(date,format)
函数来格式化日期
我也尝试重写查询。
这是实现此目的的另一种方法:
SELECT
Emp_Name,
DATE_FORMAT(Emp_DOB,'%d-%b') AS dob
FROM mldob.tbl_mldob
WHERE
DATE_FORMAT(Emp_DOB,'%m-%d') IN (
DATE_FORMAT(CURDATE() - INTERVAL 1 DAY,'%m-%d'),
DATE_FORMAT(CURDATE(),'%m-%d'),
DATE_FORMAT(CURDATE()+INTERVAL 1 DAY,'%m-%d')
)
注意:
%d Day of month, numeric (00-31)
%b Abbreviated month name (Jan-Dec)
查看更多 DATE_FORMAT
关于mysql - 获取连续三天的生日并转换为dd-mm格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40336870/