每个客户端仅在pg-promise中设置时区一次

时间:2018-07-08 15:56:51

标签: postgresql timezone pg-promise timestamp-with-timezone

我在postgressql中有一个timestamp with timezone列,名为created,该数据保存在UTC中。

我正在使用pg-promise 8.4.4,我想选择数据,但是为每个客户端设置一个不同的时区。

逻辑是我的有角度的应用程序使用node.js端点作为api,我想我可以在创建数据库连接时设置时区,但这对我的应用程序来说是很好的。

如果另一个应用程序(来自另一个时区)想要到达同一节点端点怎么办?他们如何设置时区?

因此,在SQL中,我可以做类似的事情

set timezone to 'europe/athens';
select created from table;

但是,如何在pg-promise中为不同的客户做到这一点?

我可以做类似

的操作
cmsuser.generalQuery(`select firstname, created AT TIME ZONE '+02' from table WHERE AND activated = $1 ORDER BY created`, [true])
  .then((resolved)=>{
    res.json({success:true, activated:resolved});
  })

并使+02部分动态吗?

cmsuser.generalQuery

const generalQuery = (text, params) => {
  const s = pgp.as.format(text, params);
  return db.any(s)
}

此方法目前存在两个问题

-1-通过上述查询,在没有时区部分为动态的情况下,我得到了firstname,而不是created,即日期。控制台中没有错误。

-2-为每个查询设置时区并不是一件明智的事情。

我在这里可以做什么?

谢谢

0 个答案:

没有答案