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

时间:2013-04-18 00:39:45

标签: sql postgresql-8.4

您好我正在做一个项目,我被困在下面这个问题要求我使用以前的记录,如bookingid,customerid,flightID号码,乘客详细信息等为旅行社预订,并且预订可以有保留或保留的状态。如果座位立即被确认,则保留座位,如果不是,则乘客有24小时预订并将其从保持状态更改为保留状态。此外,如果24小时后未预订座位,则会更改为已过期状态。

到目前为止,我能够提出的是

INSERT(值)INTO不同的表格以及何时正确预订bookingid.status = R或bookingid.status = bookingtime> 24 = E

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

1 个答案:

答案 0 :(得分:0)

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

请注意,我没有必要建议将状态表示为字符串,仅用于示例。

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