postgresql - 获取基于月份的动态时区偏移
问题描述
我有一个查询
"TO_CHAR((TIMEZONE('#{ tz_offset }', created_at) + (#{ months.to_s } * INTERVAL '1 month')))"
最终查询变为:
"SELECT sum(price) as sum_total, min(TO_CHAR((TIMEZONE('-05:00', created_at) + (0 * INTERVAL '1 month')), 'YYYY-MM')) as formatted_date, min(TO_CHAR((TIMEZONE('-05:00', created_at) + (0 * INTERVAL '1 month')), 'Mon/YY')) as key FROM items WHERE created_at BETWEEN '2018-09-01 04:00:00' AND '2020-02-01 03:59:59' GROUP BY TO_CHAR((TIMEZONE('-05:00', created_at) + (0 * INTERVAL '1 month')), 'YYYY-MM') ORDER BY TO_CHAR((TIMEZONE('-05:00', created_at) + (0 * INTERVAL '1 month')), 'YYYY-MM')"
如您所见, tz_offset 变为-05:00
但是,我遇到的问题是 tz_offset 是静态的,它可以根据月份而变化。例如,CST 时间是 7 月 -05:00,而 8 月是 -06:00。我想确保金额根据夏令时落入正确的月份。postgres 可以根据时区计算这个 tz_offset 吗?
解决方案
我能够使用它来工作
created_at AT TIME ZONE <tz_name>
推荐阅读
- smartcard - 用于超轻型 C 的 Omnikey 5X21 APDU 写入命令
- angular - 在 Angular7 中使用 Checkbox ag-grids 时出现复选框问题
- python - 编辑 Python 程序在执行期间使用的查找文件
- amazon-web-services - 是否可以在第三方应用程序中对 AWS IAM 用户进行身份验证?
- javascript - 页面滚动时更改标题
- java - 春天奇怪地取决于上课地点
- c++ - 我如何处理这种情况 C++ sizeof 问题
- umbraco - 自定义 Umbraco 日志记录
- laravel-5 - 如何访问反序列化 Laravel 队列数据?
- actions-on-google - Google Action 已部署,但未收到任何有关索取奖励的邮件。?