DB中刷新物化视图与Python的区别

2024-04-29 02:48:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在做一个项目,用SQL(postgresql)进程和python进程进行预测。python进程开始前的信息准备需要一系列的物化视图。 现在我正在用sqlAlchemy刷新这些视图,这是有区别的,因为python刷新它时,列date(来自生成date_trunc('month',date的查询)不是上一个表日期的月份,而是原始表日期前一个月的最后一天。在

例如: 表1的日期为2017-12-02至2018-02-04 日期结果应为:

2018-01-01 00:00:00.000000
2017-12-01 00:00:00.000000
2018-02-01 00:00:00.000000

但结果是:

^{pr2}$

有什么办法吗?在


Tags: 项目视图信息sqldatesqlalchemy进程postgresql
1条回答
网友
1楼 · 发布于 2024-04-29 02:48:19

我相信你们不同的客户有不同的时区。为了证明这一点,我将这样做:

t=# create table so6(t timestamp,tz timestamptz);
CREATE TABLE
t=# insert into so6 select date_trunc('month',now()),date_trunc('month',now());
INSERT 0 1
t=# set timezone to 'GMT-3';
SET
t=# insert into so6 select date_trunc('month',now()),date_trunc('month',now());
INSERT 0 1
t=# select * from so6;
          t          |           tz
          -+            
 2018-02-01 00:00:00 | 2018-02-01 03:00:00+03
 2018-02-01 00:00:00 | 2018-02-01 00:00:00+03

(2 rows)

正如您可以看到的,根据您的客户端时区设置结果不同。在

现在,如果选择result back with first client时区,则会得到:

^{pr2}$

看起来像你的案子

相关问题 更多 >