【问题标题】:How to extract periods from timestamp in postgresql如何从postgresql中的时间戳中提取句点
【发布时间】:2015-01-06 12:12:53
【问题描述】:

我需要提取并分组从每月1日到15日(包括)和从16日到月底(包括最后一天)的时间戳信息

我只每周制作一次。这是代码

 SELECT
    extract(week from dttrnreqdate) AS period, 
    SUM(bonusesCharged - bonusesCharged_rev) AS bonusesChargedForPeriod,
    SUM(bonusesWithdrawn - bonusesWithdrawn_rev) AS bonusesWithdrawnForPeriod
FROM
    ls.vstatement AS v
WHERE
    v.dttrnreqdate >= to_timestamp('2014-12-01 00:00:00', 'yyyy-mm-dd 00:00:00') AND
    v.dttrnreqdate < to_timestamp('2015-01-07 00:00:00', 'yyyy-mm-dd 00:00:00')
GROUP BY
    extract(week from dttrnreqdate)
ORDER BY
    extract(week from dttrnreqdate)
 ASC

在哪里 dttrnreqdatetimestamp bonusesCharged, bonusesCharged_rev, bonusesWithdrawn, bonusesWithdrawn_rev - int

那么如何提取时间戳字段的信息1-15和16-30/31

【问题讨论】:

    标签: sql postgresql timestamp extract


    【解决方案1】:

    我很确定这回答了你的问题,但我不确定它会解决你的问题。

    SELECT
        case when extract(day from dttrnreqdate) <= 15 then 'grp1'
             else 'grp2'
        end as grp,
        SUM(bonusesCharged - bonusesCharged_rev) AS bonusesChargedForPeriod,
        SUM(bonusesWithdrawn - bonusesWithdrawn_rev) AS bonusesWithdrawnForPeriod
    FROM
        ls.vstatement AS v
    WHERE
        v.dttrnreqdate >= to_timestamp('2014-12-01 00:00:00', 'yyyy-mm-dd 00:00:00') AND
        v.dttrnreqdate < to_timestamp('2015-01-07 00:00:00', 'yyyy-mm-dd 00:00:00')
    GROUP BY
        grp
    ORDER BY
        grp
     ASC;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-01
      • 2014-11-21
      • 2020-12-24
      • 1970-01-01
      • 2011-09-02
      • 2015-01-10
      • 2016-08-10
      相关资源
      最近更新 更多