在我的应用程序中,我设计了一个 Spring 调度程序,它应该选择具有“abcDate”字段并以明天的时间戳作为值的记录。
我在我的java应用程序中计算了时间戳,
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, 1);
long abcTimeStamp = DateUtils.convertDateTimeToUTCzone(cal.getTimeInMillis());
该值是:1387348986,即)12/18/13 @ 6:43:06am UTC
在数据库中,我有一条记录,时间戳为 1387365854,即)12/18/13 @ 11:24:14am UTC。
我正在使用 couch DB 映射缩减 View ,并将时间戳值作为 View 的键传递。
但是由于两个时间戳的时间不同,我无法获取该记录。有没有办法只匹配时间戳中的天数并过滤 View 本身的记录?
最佳答案
CouchDB 的 startkey
和 endkey
概念在这里非常有用。
听起来您已经有了一个 View ,但为了完整起见,我们假设它看起来像这样:
{
"_id": "_design/mydesign",
"_rev": "1-088646f81629ce559b6d9772c6116113",
"views": {
"by_timestamp": {
"map": "function(doc) { emit(doc.timestamp, doc); }"
}
}
}
您已经有一个名为“timestamps”的数据库在本地运行,其中包含一些文档,如下所示:
$ curl localhost:5984/timestamps/_design/mydesign/_view/by_timestamp
要获取一系列文档,请添加 startkey
和 endkey
查询参数:
$ curl localhost:5984/timestamps/_design/mydesign/_view/by_timestamp\?startkey\=1387348986\&endkey\=1387365854
现在要获取这些参数,您需要明天开始和明天结束的时间戳。 This answer使用 java.util.Calendar
API 和 Joda-Time 涵盖了这一点。
有关查找许多内容的更多信息,请查看 CouchDB 的精彩 new docs .
关于java - 比较两个时间戳天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20634077/