gpt4 book ai didi

php - mysql mod函数返回负数

转载 作者:行者123 更新时间:2023-11-29 22:45:08 24 4
gpt4 key购买 nike

这个问题的一个很好的例子是计算生日的剩余天数

我正在使用 DateDiff(CURRDATE(),"Birthday column") 函数并接收天数差异,并且比我需要做 mod 365。

Mod 365 用于检索 364(如果联系人昨天过生日)。

DateDiff(CURRDATE(),CURRDATE() - 间隔 1 天)= -1
MOD(-1,365) = -1

:\连线!

最佳答案

我找到了这个问题的解决方案

MOD(MOD(负,365)+365),365)

USE `test`;
DROP procedure IF EXISTS `get_user_contacts`;

DELIMITER $$
USE `test`$$

CREATE PROCEDURE `test`.`get_user_contacts` (user_id INT(11),lim INT(11))
BEGIN

DECLARE is_user_exist INT(11);
SELECT count(*) INTO is_user_exist FROM users WHERE `users`.`id` = user_id;
IF is_user_exist =1 THEN
SELECT `contacts`.*,MOD(MOD(DATEDIFF(CURDATE(),`contacts`.`birthday` + INTERVAL (EXTRACT(YEAR FROM CURDATE())-EXTRACT(YEAR FROM `contacts`.`birthday`)) YEAR)*(-1),365)+365,365) AS DiffDate FROM contacts
LEFT JOIN contacts_users ON `contacts`.`id` = `contacts_users`.`contact_id`
LEFT JOIN users ON `contacts_users`.`user_id` = `users`.`id` LIMIT lim;
ELSE
SELECT 404 as error_number,'User not found.' as message;

END IF;
END$$

DELIMITER ;

祝你好运!

关于php - mysql mod函数返回负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29180809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com