我已经使用CSV将字符串格式的时间戳加载到Neo4j中,因为我不知道如何从一开始就将它们设置为日期时间格式。然后,我找到了一种在字符串上使用“ split”函数的方法,然后将其转换为整数,然后转换为日期时间,我得到了大部分解决小问题的方法
我试图用“-”分割日期位,用“:”分割时间,但我不确定如何处理日期和时间之间的空格,使我的解决方案无法正常工作
MATCH (p:event)
WITH p, [x IN split(p.tstamp, "-") | toInteger(x)] AS parts
WITH p,parts, [y IN split(p.tstamp, ":") | toInteger(y)] AS timeparts
SET p.timestamp = datetime({day: parts[2], month: parts[1], year: parts[0], hour: timeparts[0], minute:timeparts [1], second:timeparts[2]
});
原始时间戳示例为:
//original timestamp
09/01/2019 17:34:58.0000
我希望有例如:
//e.timestamp
09/01/2019 17:34:58
但是我得到了
//e.timestamp
"2019-01-01T00:34:58Z"
答案 0 :(得分:2)
您可以尝试使用apoc functions解析任何格式的日期和时间。
我添加了带有您原始时间戳记的事件
{
"tstamp": "09/01/2019 17:34:58"
}
然后查询完成了工作
MATCH (p:Event)
SET p.timestamp = datetime({ epochMillis: apoc.date.parse(p.tstamp, 'ms', 'MM/dd/yyyy HH:mm:ss') })
此查询后,我的活动如下:
{
"tstamp": "09/01/2019 17:34:58",
"timestamp": "2019-09-01T17:34:58Z"
}