PostgreSQL两个日期的时间差比较分钟/小时

-- 按分钟比较差值
select * from round(cast(date_part('epoch', to_timestamp(now()::text,'yyyy-mm-dd hh24:MI:SS') - to_timestamp('2022-10-08 10:10:11','yyyy-mm-dd hh24:MI:SS'))/60 as numeric ),1)
-- 按小时比较差值
select * from round(cast(date_part('epoch', to_timestamp(now()::text,'yyyy-mm-dd hh24:MI:SS') - to_timestamp('2022-10-08 10:10:11','yyyy-mm-dd hh24:MI:SS'))/60/60 as numeric ),1)

-- 当前日期按24小时显示
SELECT to_char(now(),'yyyy-mm-dd hh24:MI:SS') 

以下为本人案例:

SELECT
  TO_CHAR(
    SUM (
    CASE
        WHEN (
          round(
            CAST ( date_part( 'epoch', to_timestamp( CM_0_2_6_1, 'yyyy-mm-dd hh24:MI:SS' ) - to_timestamp( CM_1_4_1, 'yyyy-mm-dd hh24:MI:SS' ) ) / 60 / 60 AS NUMERIC ),
            2
          ) 
        ) :: NUMERIC > 0 
        AND (
          round(
            CAST ( date_part( 'epoch', to_timestamp( CM_0_2_6_1, 'yyyy-mm-dd hh24:MI:SS' ) - to_timestamp( CM_1_4_1, 'yyyy-mm-dd hh24:MI:SS' ) ) / 60 / 60 AS NUMERIC ),
            2
          ) 
          ) :: NUMERIC < 1 THEN
          1 ELSE 0 
        END 
        ) :: NUMERIC / COUNT (*) * 100,
        'FM999990.00' 
      ) || '%' 
  FROM
    T_DSCC T,
    T_DSSUBMIT B 
  WHERE
    T.FCODE = B.FCODE 
    AND B.FSTATUS IN ( '3', '4' ) 
  AND B.FISDEL = '0' 
  AND B.ISSUBMIT = '1'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值