N1QL 将时区转换为日期,Couchbase

N1QL convert timezone into date,Couchbase

我想在 N1QL 查询中将 2015-10-29T16:15:11.000Z 转换为 2015-10-29 日期。 我该怎么做?

这里有几个选项。如果您可以容忍 ISO 8601 格式的时间并使用 DATE_TRUNC_STR(expression, part) 日期函数,最简单的方法是可行的:

SELECT DATE_TRUNC_STR(date_time, "day") AS new_date FROM bucket

这样的查询(使用 2015-10-29T16:15:11.000Z 作为 date_time)的结果是:

{
  "results": [
    {
      "new_date": "2015-10-29T00:00:00Z"
    }
  ]
}

或者,您可以使用 DATE_PART_STR(expression, part) 函数和带有字符串连接 (||) 的 TOSTRING(expression) 函数来解析各个部分:

SELECT TOSTRING(DATE_PART_STR(date_time, "year")) || "-" || TOSTRING(DATE_PART_STR(date_time, "month")) || "-" || TOSTRING(DATE_PART_STR(date_time, "day")) AS new_date FROM bucket

结果:

{
  "results": [
    {
      "new_date": "2015-10-29"
    }
  ]
}

参考: http://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/datefun.html