我试图通过用当前日期计算出生日期来计算下一个生日还剩下多少天和几个月,但我无法正确得到日期,只有月份,我想我是让它太“长”。
给定日期,我如何才能获得周年纪念日的剩余天数?
代码
DROP FUNCTION IF EXISTS naixement;
DELIMITER //
CREATE FUNCTION naixement(par_data DATE)
RETURNS VARCHAR(25)
BEGIN
DECLARE var_messos INT DEFAULT FLOOR((1200 + DATE_FORMAT(NOW(),'%m%d') - DATE_FORMAT(par_data,'%m%d'))/100);
DECLARE var_dies INT DEFAULT FLOOR(TIMESTAMPDIFF( DAY, par_data, NOW()) % 30.4375);
RETURN CONCAT(var_messos,' mesos i ',var_dies,' dies');
END //
DELIMITER ;
解析度
DECLARE var_mesos INT DEFAULT ABS(TIMESTAMPDIFF(MONTH, DATE(CONCAT(YEAR(NOW()),'/',MONTH(par_data),'/',DAY(par_data))),
DATE(CONCAT(YEAR(NOW()),'/',MONTH(NOW()),'/',DAY(par_data)))));
DECLARE var_dies INT DEFAULT ABS(TIMESTAMPDIFF(DAY, DATE(CONCAT(YEAR(NOW()),'/',MONTH(par_data),'/',DAY(par_data))),
DATE(CONCAT(YEAR(NOW()),'/',MONTH(par_data),'/',DAY(NOW())))));
在 MySQL 中,
DATEDIFF
您可以使用.从文档(英文免费翻译......):