比较单个表中的两个日期列

r7knjye2  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(161)

我数据库中的一个表包含 check_in_date 以及 checkout_date 指某一物品。我想创建一个触发器,如果有人输入的 checkout 日期早于签入日期,则不允许更新表,例如,如果check-in=2017-10-16,则2017-10-14不允许 checkout 。我读过https://dev.mysql.com/doc/refman/5.7/en/using-date.html 它说,当比较两列的日期时,你应该使用 STRCMP . 所以我试过了,但它仍然接受任何日期。我可能在用 STRCMP 错,当第一个参数较小时,它应该返回-1,但我不确定在if语句中使用它是否正确。

DROP TRIGGER IF EXISTS check_dates;
    DELIMITER //
    CREATE TRIGGER check_dates
    BEFORE UPDATE ON dates
    FOR EACH ROW
    BEGIN
        IF STRCMP('NEW.checkout_date', 'check_in_date')=-1
        THEN
            SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Checkout date must be after the checkin.';
        END IF;
    END;//
    DELIMITER ;

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题