【问题标题】:How to date_trunc with offset?如何使用偏移量 date_trunc?
【发布时间】:2021-08-07 16:01:04
【问题描述】:

我有一个 api 服务,它返回偏移量为 1 小时前 aprx 的数据。这不是时区,而是他们聚合前一个日期的数据的方式,它发生在午夜后下一个日期的第一个小时。因此,如果我按天 date_trunc 并以这种方式对其进行分组,那么我会丢失午夜之后的部分数据。任务是将当前日期的数据分组,并考虑从当前日期跳过开始时间的偏移量,并从下一个日期获取数据,就好像它是当前日期一样。

你会如何处理这个案子?

谢谢。

【问题讨论】:

    标签: sql postgresql clickhouse


    【解决方案1】:

    只需减去一小时:

    select date_trunc('day', column - interval '1 hour')
    

    您可以使用以下方式将其包含在聚合查询中:

    select date_trunc('day', column - interval '1 hour') as the_day,
           count(*)
    from t
    group by the_day;
    

    【讨论】:

    • 完美!有效。不知道为什么,因为它是向前偏移而不是向后偏移:))你能详细说明一下吗?
    • @IvanKolyhalov 。 . .上午 12:30 减去 1 小时是晚上 11:30。在前一天。
    • 嗯,这已经很清楚了,但是我的大脑由于某种原因无法理解它:)我得再考虑一下;)
    • @IvanKolyhalov 。 . .基本上,它会返回一小时前的日期。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 2011-09-11
    • 1970-01-01
    相关资源
    最近更新 更多