首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REQL日期和时间查询

REQL日期和时间查询
EN

Stack Overflow用户
提问于 2015-06-08 17:46:38
回答 1查看 3K关注 0票数 1

我的文档包含以下字段:

代码语言:javascript
复制
"valid_from":  "Mar 17 08:55:04 2011 GMT"
"valid_to":  "Mar 16 08:55:04 2017 GMT"

我的基本查询目前看起来如下:

代码语言:javascript
复制
r.db('items').table('token')
  1. 如何查询仅在当前日期时间(now)和"valid_to“字段之间检索/筛选文档?也就是说,任何小于当前日期/时间的"valid_to“日期都被视为过期。
  2. 计算"valid_from“和"valid_to”字段之间的天数。即以天为单位确定有效期。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-08 18:14:10

#1

因此,基本上您希望所有尚未过期的文档(valid_to)都在未来?

为了做到这一点,您应该明确地使用RethinkDB时间/日期函数。但是,要做到这一点,您必须使用r.timer. ISO8601创建一个time实例。这方面的一个例子是:

代码语言:javascript
复制
r.table('tokens')
  .insert({
    "valid_from": r.ISO8601("2011-03-17T08:55:04-07:00"),
    "valid_to": r.ISO8601("2017-03-17T08:55:04-07:00")
  })

使用这些函数插入/更新文档后,可以使用RethinkDB的time/date函数查询它们。如果你想要所有未来valid_to的文档,你可以这样做:

代码语言:javascript
复制
r.table('tokens')
  .filter(r.row['valid_to'] > r.now())

如果您想获得未来valid_to和过去valid_from的所有文档,可以这样做:

代码语言:javascript
复制
r.table('tokens')
  .filter(r.row['valid_to'] > r.now())
  .filter(r.row['valid_from'] < r.now())

#2

如果这两个属性(valid_tovalid_from)都是time/date对象,则可以通过执行以下操作向每个文档添加一个days属性:

代码语言:javascript
复制
r.table('tokens')
  .merge({
    // Subtract the two properties. Divide by seconds * minutes * hours
    "days": (r.row['valid_to'] - r.row['valid_from']) / (60 * 60 * 24)
  })

Python代码

代码语言:javascript
复制
import rethinkdb as r
conn = r.connect()
cursor = r.table('30715780').filter(r.row['valid_to'] < r.now()).count().run(conn)
print list(cursor)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30715780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档