使用带日期的case when语句,条件在今天之内



我必须找出是否在创建后90分钟内,90分钟后但同一天以及之后的几天下了订单。

我使用了case when语句:

订单<= 90则' 90分钟内'等

在什么情况下可以在90分钟之后但在同一天内使用when语句?

假设列order具有数据类型时间戳,您可以尝试以下case ...:

select id
, order_tm
, case when current_timestamp - order_tm < interval '90 minutes' 
then 'within 90 minutes'
when current_date = order_tm::date
then 'same day, but >= 90 minutes ago'
else (extract ('day' from current_timestamp - order_tm))::text || ' days ago'
end "When Ordered" 
from orders;

注意:使用order作为列名是一个非常糟糕的选择。它既是Postgres保留字,也是SQL标准保留字。虽然您目前可以这样做,但将来可能会发生变化,因为它已经记录了相当长的一段时间。最好使用保留字作为列名会导致混淆。

相关内容

  • 没有找到相关文章

最新更新