Couchbase将epoch转换为ISO

时间:2017-08-20 12:49:53

标签: couchbase n1ql

我很难用 Couchbase N1QL 将Epoch转换为ISO datetime。 Couchbase以毫秒存储etoch时间,我需要完整的ISO8格式YYY-MM-DDThh:mm:ss.S。我试过了:

SELECT  DATE_PART_MILLIS(1463284740000, 'year'), DATE_PART_MILLIS(1463284740000, 'month'), DATE_PART_MILLIS(1463284740000, 'day')

但它显然会返回类似json的响应。我尝试连接像SELECT DATE_PART_MILLIS(1463284740000, 'year') || DATE_PART_MILLIS(1463284740000, 'month') || DATE_PART_MILLIS(146328474000 0,'day')

但它没有任何回报

[
  {
    "$1": null
  }
]

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在Couchbase中,您可以将时间存储为数字(以毫秒为单位) 或字符串为ISO-8601格式。它提供了许多日期功能 ISO-8601格式如下所述 https://developer.couchbase.com/documentation/server/current/n1ql/n1ql-language-reference/datefun.html

SELECT MILLIS_TO_STR(1463284740000);

DATE_PART_MILLIS(date1,part [,tz]) 从Epoch / UNIX时间戳值中提取给定日期组件的值。 返回值 - 一个整数,表示从时间戳中提取的组件的值。 字符串连接需要字符串,在函数周围添加TOSTRING,如

SELECT  TOSTRING(DATE_PART_MILLIS(1463284740000, 'year')) || "-" ||
        TOSTRING(DATE_PART_MILLIS(1463284740000, 'month')) || "-" || 
        TO_STRING(DATE_PART_MILLIS(1463284740000, 'day'));