在Couchbase中减去日期?

时间:2018-11-22 23:44:17

标签: database couchbase n1ql

我有一个沙发式存储桶,该存储桶以以下格式存储两个utc日期:

10-16-2018T18:05:45.823 + 0000Z

因此文档如下所示:

searchResult.getText('customlist'); // returns the display value of the list/record field. 

我想创建一个查询,使我能够获取每个文档中两个日期之间的时差。我尝试做这样的事情:

{
"date1:"10-16-2018T18:05:45.823+0000",
"date2: "10-17-2018T18:05:45.827+0000"
}

但是它不起作用。感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在JSON中,没有时间戳数据类型。时间戳存储为ISO-8601格式YYYY-MM-DDThh:mm:ss.sTZD,可以与字符串进行比较。所有N1QL日期功能均适用于ISO-8601格式

https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/datefun.html

 SELECT DATE_DIFF_STR(
                      SUBSTR(date2,6,4)||"-"|| SUBSTR(date2,0,5)||SUBSTR(date2,10),
                      SUBSTR(date1,6,4)||"-"|| SUBSTR(date1,0,5)||SUBSTR(date1,10),"day")
    LET date1 = "10-16-2018T18:05:45.823+00:00", date2="11-17-2018T18:05:45.827+00:00";