我很难用 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
}
]
有什么建议吗?
答案 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'));