gpt4 book ai didi

mysql - 查询中的日期变量赋值

转载 作者:行者123 更新时间:2023-11-30 00:06:47 25 4
gpt4 key购买 nike

我在 MySQL 触发器中分配日期类型的变量时遇到一些问题。当我尝试将变量与当前日期进行比较时,它无法正常工作。

    CREATE TRIGGER actualizar_numero_sesiones AFTER INSERT ON registroingresos
FOR EACH ROW
BEGIN
DECLARE d date;
DECLARE vigente INT(11);
DECLARE vencido INT(11);
DECLARE state varchar(10);
select p.fecha_fin into d from compra_paquete cp, paquetes p where cp.ci = new.ci AND p.idpaquete = cp.idpaquete;
SET vencido = d > CURDATE();
SET vigente = d < CURDATE();
IF (vencido = 1) THEN
SET state = 'Vencido';
IF ELSE(vigente = 1) THEN
SET state = 'Vigente';
END IF;
END;

我分配变量 d 的查询是“paquetes”表中的日期值,问题是 d 变量的分配无法正常工作,因为我知道比较的日期 fecha_fin ='2012-04-06 ' 和 CURDATE() 在 fecha_fin 之后,状态值应该是“vencido”,但它是“vigente”

最佳答案

变量status有什么作用?

您可以使用以下语句稍微简化一下:

...
SET `state` := (
SELECT IF(`p`.`fecha_fin` > CURDATE(), 'Vencido', 'Vigente')
FROM `compra_paquete` `cp`, `paquetes` `p`
WHERE `cp`.`ci` = NEW.`ci` AND `p`.`idpaquete` = `cp`.`idpaquete`
);
...

SQL Fiddle example

关于mysql - 查询中的日期变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24472991/

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