【问题标题】:Checking the time in ORACLE APEX 5.1在 ORACLE APEX 5.1 中检查时间
【发布时间】:2018-01-05 19:43:27
【问题描述】:

我是 apex 的新手,我正在开发一个食品订购应用程序,允许客户在下单后最多 15 分钟内更改他们的订单详细信息。我该如何实现呢?

【问题讨论】:

    标签: oracle-apex


    【解决方案1】:

    在日期项上创建验证。计算 SYSDATE(即“现在”)和订单日期之间的差异。减去两个 DATE 数据类型值得到天数,因此将其乘以 24(得到小时)和 60(得到分钟)。如果该结果大于 15,则引发错误。

    【讨论】:

    • 超过你的意思是超过 15 个!
    • 当然(我在想什么?!)。谢谢你,@托尼。固定!
    • 请注意,会话状态存储为字符串,因此您应该在验证之前显式转换日期项:to_date(:P1_MY_DATE)
    【解决方案2】:

    为了提供Littlefoot's answer 的替代方案,如果您使用 SYSTIMESTAMP,则时间戳算术返回区间文字,您的查询可能是:

    systimestamp - order_date < interval '15' minute
    

    或者,甚至使用 SYSDATE 之类的东西:

    order_date > sysdate - interval '15' minute
    

    请注意,15 分钟似乎有些随意(一个神奇的数字),它依赖于在该时间限制内未开始处理的订单。说类似“您可以在厨房开始烹饪之前更改您的订单”之类的话感觉更自然。那时不需要任何神奇的数字,浪费也大大减少(无论是客户的时间总是等待 15 分钟,还是厨房的资源在烹饪他们可能不得不丢弃的东西)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-03
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      相关资源
      最近更新 更多