N1QL将时区转换为日期,Couchbase

时间:2016-12-08 12:04:01

标签: couchbase n1ql

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

1 个答案:

答案 0 :(得分:3)

这里有几个选项。如果您可以容忍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