【问题标题】:Hasura graphql query between dates日期之间的 Hasura graphql 查询
【发布时间】:2020-07-02 09:08:53
【问题描述】:

在我的 hasura.io 数据库中,我有一个 booking 表,我在其中存储具有以下属性的预订:

  • id(自动增量)
  • 从(时间戳)
  • 到(时间戳)
  • 说明(文字)

现在,在用户界面中,当用户进行预订时,我想检查之前是否有任何涉及这些日期范围的预订。

例如。用户想要预订以下日期:

{
  "from": "2020-03-31T14:00:00+00:00",
  "to": "2020-03-31T17:00:00+00:00"
}

但是在同一天有一个预订:

{
  "from": "2020-03-31T15:00:00+00:00",
  "to": "2020-04-01T17:00:00+00:00"
}

请注意,此预订不在用户尝试预订的日期范围内。所以下面的查询不会返回任何内容。

query CheckBooking($from: timestamptz!, $to: timestamptz!) {
  booking(where: {_and: [{from: {_lte: $from}}, {to: {_gte: $to}}]}) {
    id
    from
    to
  }
}

以上是我尝试过的,但没有成功。 任何人都可以帮助找出正确的查询来检查范围内或用户新预订中是否有任何预订?

【问题讨论】:

    标签: graphql react-apollo gql hasura


    【解决方案1】:

    我们想分别考虑fromto 并对两者应用范围。所以你可以这样做:

    query CheckBooking($from: timestamptz!, $to: timestamptz!) {
      booking(where: {_or: [
        {_and: [{from: {_gte: $from}}, {from: {_lt: $to}}]},
        {_and: [{to: {_gt: $from}}, {to: {_lte: $to}}]},
      ]}) {
        id
        from
        to
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-19
      • 2018-08-11
      • 1970-01-01
      • 2014-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      相关资源
      最近更新 更多