如何在sql中更改与时间相关的状态



嗨,我正在做一个项目,我被困在下面的问题要求我使用以前的记录,如预订id,客户id,航班id号码,乘客详细信息等为旅行社预订条目,并且预订可以有保留或持有的状态。如果座位立即得到确认,则为预订,否则乘客有24小时的时间预订并将其从持有状态更改为预订状态。另外,如果超过24小时仍未预订,则该座位将变为过期状态。

目前我能想到的是

INSERT (values) INTO不同的表,当它被预订的正确的bookingid。status = R或bookingid。status = bookingtime> 24 = E

在这里没有线索,所以感谢一些帮助!!

有很多方法可以做到这一点,但最简单的方法是将预订状态初始化为reserved,如果它被立即预订,则将held。现在,您必须依靠视图(或其他类似的方法)来获得动态计算的状态。如果用户在稍后的时间预订了他的预订,您只需更新预订状态即可预订。

请注意,我没有必要建议将状态表示为字符串,这只是为了示例。

SELECT 
    CASE
        WHEN status = 'held' AND DATEDIFF(hh, booking_date, now()) > 24 THEN 'expired'
        ELSE status
    END AS status
FROM booking

最新更新