【问题标题】:Retrieve previous months data检索前几个月的数据
【发布时间】:2017-03-17 03:10:08
【问题描述】:

我正在自动化一些报告,但在尝试自动化特定月度报告时遇到了一些困难。日期/时间存储在纪元值中。

以下查询:

SELECT
    Column1,Column2,Column3,Column4
FROM
    Table1,Table2
WHERE
    summarydate >= extract(epoch from to_timestamp('01 oct 2016', 'DD Mon YYYY'))::bigint and
    summaydate < extract(epoch from to_timestamp('01 nov 2016', 'DD Mon YYYY'))::bigint and
GROUP BY 1,2
ORDER BY 1,2

目前查询是在调整日期范围后手动运行的。

考虑到时代的摘录,是否可以将日期自动更改为上个月?

我们的目标是使用此查询设置一个自动报告,以便在每个月的第一天运行前几个月的数据。

在与“获取上个月数据”相关的其他问题中,我找不到 Postgres 的解决方案

【问题讨论】:

  • 我知道这可能只是一个例子,但如果 SELECT 不包含在 GROUP BY 部分中,则不能在 SELECT 上包含非聚合字段
  • @JuanCarlosOropeza 正确这只是一个例子,真正的 select 语句在查询中起作用,但我很欣赏这个提示,我还是很新手 :)
  • 即使是一个例子,你也应该尽可能做到最好,否则我们会因为不相关的错误而浪费时间。 How to create a Minimal, Complete, and Verifiable example
  • 知道了,已将您链接的页面添加为书签,以便将来有任何问题。非常感谢。

标签: sql postgresql


【解决方案1】:

尝试使用DATE_TRUNC('month',DATE),它将输出当月的第一天:

SELECT
    Column1,Column2,Column3,Column4
FROM
    Table1,Table2
WHERE
    summarydate >= extract(epoch from date_trunc('month', current_date) - interval '1 month')::bigint and
    summaydate < extract(epoch from date_trunc('month', current_date))::bigint and
GROUP BY 1,2
ORDER BY 1,2

【讨论】:

  • 完美,非常感谢@sagi 我不认为你可以使用间隔,内存库的东西!
  • 没问题的伙伴@Dante
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 2023-04-06
  • 2021-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多