【问题标题】:Total minutes in a duration in Neo4JNeo4J 中持续时间的总分钟数
【发布时间】:2022-01-01 22:15:15
【问题描述】:

我最近想知道duration.betweenneo4j 中的分钟和/或小时的差异。

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 的总分钟数(包括天数)?

【问题讨论】:

    标签: neo4j cypher duration


    【解决方案1】:

    【讨论】:

    • 给我的结果和我之前说的一样。
    • 看起来您需要在密码查询中进行计算。另一种选择是编写您自己的用户定义函数。我会使用密码查询中的等式。
    • 是的,我已经做到了,这似乎是唯一的方法。
    • 有时第一个解决方案是最好的!!!
    猜你喜欢
    • 2021-10-23
    • 2017-03-15
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 2020-01-03
    相关资源
    最近更新 更多