【发布时间】:2022-01-01 22:15:15
【问题描述】:
我最近想知道duration.between 和neo4j 中的分钟和/或小时的差异。
MATCH (yv:YoutubeVideo)
WHERE datetime(yv.publishedAt) >= datetime('2021-11-16T12:05:47.897962')
WITH yv, duration.between(datetime('2021-11-16T12:05:47.897962'), yv.publishedAt).minutes as minutes,
yv.publishedAt as expectedDate,
datetime('2021-11-16T12:05:47.897962') as startDate
RETURN duration.between(datetime('2021-11-16T12:05:47.897962'), yv.publishedAt) as duration, startDate,
expectedDate + duration({minutes:minutes}) as expectedRes,
startDate + duration({minutes:minutes})as resultDate
LIMIT 1
这似乎没问题,但事实并非如此。
如您所见,我想将duration 的分钟数添加到startDate 以获得expectedRes。我意识到duration.between(datetime('2021-11-16T12:05:47.897962'), yv.publishedAt).minutes 只返回一小时的分钟数,不包括天数。这导致resultDate。
一个更好的例子:
假设duration 是 3 天 4 小时 20 分钟。如果我这样做.minutes,我将收到 260 分钟的结果(这是小时 * 分钟一小时 + 剩余分钟数的结果,在本例中为 4 * 60 + 20),但我希望结果为 4580(这是 (天 * 小时 + 剩余小时数) * 一小时内分钟数 + 剩余分钟数的结果,在本例中为 (3 * 24 + 4) * 60 + 20 )
有没有办法在我的Cypher 查询中不做该等式而获得duration 的总分钟数(包括天数)?
【问题讨论】: