给定createdAt日期后获取数据

时间:2019-07-02 09:17:19

标签: postgresql graphql postgraphile

我想获取最近一小时的数据。

我怀疑如何在后石墨化中添加>和&<

如果我在双引号中添加current_timestamp仍然出现错误。

这是邮编屏幕。

enter image description here'的上岗时间

1 个答案:

答案 0 :(得分:1)

您可以阅读有关filtering in the PostGraphile docs的信息。要实现您指定的功能,可以使用postgraphile-plugin-connection-filter插件,并发出如下查询:

query SessionsSince($timestamp: DateTime!) {
  allSessions(filter: {
    createdAt: { greaterThan: $timestamp }
    deviceid: { equalTo: "123" }
  }) {
    ...
  }
}

但是,请记住,GraphQL API并非旨在向用户公开数据库的所有功能。我个人没有使用custom query,而是公开了一个更整洁的API,而不是公开这个原始接口。像这样:

create function recent_sessions(deviceid text) returns setof sessions as $$
  select *
  from sessions
  where sessions.deviceid = recent_sessions.deviceid
  and created_at > NOW() - interval '1 hour';
$$ language sql stable;

然后您将像这样查询它:

{
  recentSessions(deviceid: "123") {
    nodes {
      deviceid
    }
  }
}