在neo4j中,我们可以将持续时间转换为秒吗?

时间:2018-08-02 21:44:53

标签: neo4j

是否有办法获取类型为datetime的2个值之间的差(以秒为整数)?我可以更接近地获得一个持续时间类型值,该值不是很精确,因为它基于作为输入传递的日期。

这里是一个例子。这两个查询都返回"P1M0DT0S"

RETURN duration.between(datetime("2018-01-01T00:00:00Z"), datetime("2018-02-01T00:00:00Z")) RETURN duration.between(datetime("2018-02-01T00:00:00Z"), datetime("2018-03-01T00:00:00Z"))

如果仔细看,这是1月1日至2月1日,然后2月1日至3月1日的持续时间。它们都产生“ 1个月”,但是一个月是31天,另一个是28天。我需要几秒钟。

我尝试了显而易见的方法,例如对结果调用toInteger,但它不起作用。

Neo.ClientError.Statement.SyntaxError: Type mismatch: expected Float, Integer, Number or String but was Duration (line 1, column 26 (offset: 25)) "RETURN toInteger(duration.between(datetime("2018-03-01T00:00:00Z"), datetime("2018-02-01T00:00:00Z")))"

1 个答案:

答案 0 :(得分:1)

两个答案。一个持续时间:

RETURN duration.inSeconds(datetime("2018-01-01T00:00:00Z"), datetime("2018-02-01T00:00:00Z")).seconds

一个带有日期时间的

RETURN datetime("2018-03-01T00:00:00Z").epochSeconds - datetime("2018-02-01T00:00:00Z").epochSeconds