首页 > 解决方案 > 如何在查询中包含夏令时更改,以便它给出 25 小时,或一天 23 小时而不是 24 小时

问题描述

在 DB ( Postgres / TimescaleDB ) 中,我每 30 分钟测量一次。所以,这意味着在正常的一天,我有 48 个小节。时间戳以“没有时区的时间戳”类型存储

现在,对于我们在法国(2020-10-252021-03-28)更改 CDT 的 2 个特殊日子,我应该分别有 50 和 46 个措施。

但是当我查询时:

    $measuresByTS = Measure::where('time', '>=', $from)
        ->where('time', '<=', $to)
        ->...

我总是得到 48 个符合逻辑的措施,但不是我想要的。

我应该如何在这 2 天内获得 46 或 50 措施?是否有任何 TimescaleDB 函数可以管理它?

这是我应该得到的:

当 46 措施:

我应该有从2021-03-28T23:00:00Z到的度量2021-03-28T21:30:00Z(以法语 TZ 格式)

当 50 个措施时:

我应该有从2021-03-28T22:00:00Z到从的度量2021-03-28T22:30:00Z(以法语 TZ 格式)

我该怎么做???

标签: laraveleloquenttimezonetimescaledb

解决方案


推荐阅读