持续时间函数
duration()
语法 |
|
||
描述 |
创建一个 |
||
参数 |
名称 |
类型 |
描述 |
|
|
输入可以是表示时长值的字符串,或者包含以下可选键的映射:'years'(年)、'months'(月)、'weeks'(周)、'days'(天)、'hours'(小时)、'minutes'(分钟)、'seconds'(秒)、'milliseconds'(毫秒)、'microseconds'(微秒)或 'nanoseconds'(纳秒)。 |
|
|
|
用于解析输入的模式。如果提供了模式,则 |
|
返回 |
|
||
如果 |
对于提供的组件数量没有限制。 |
|
组件的值可以用十进制小数表示。 |
组件的值可以是任意大的。 |
组件的值可以是负数。 |
|
|
UNWIND [
duration({days: 14, hours:16, minutes: 12}),
duration({months: 5, days: 1.5}),
duration({months: 0.75}),
duration({weeks: 2.5}),
duration({minutes: 1.5, seconds: 1, milliseconds: 123, microseconds: 456, nanoseconds: 789}),
duration({minutes: 1.5, seconds: 1, nanoseconds: 123456789})
] AS aDuration
RETURN aDuration
| aDuration |
|---|
|
|
|
|
|
|
行数: 6 |
UNWIND [
duration("P14DT16H12M"),
duration("P5M1.5D"),
duration("P0.75M"),
duration("PT0.75M"),
duration("P2012-02-02T14:37:21.545"),
duration("5 hours 6 minutes", "h 'hours' m 'minutes'")
] AS aDuration
RETURN aDuration
| aDuration |
|---|
|
|
|
|
|
|
行数: 6 |
duration.between()
语法 |
|
||
描述 |
计算 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示起始时刻的时间瞬间类型( |
|
|
|
表示结束时刻的时间瞬间类型( |
|
返回 |
|
||
如果 |
如果 |
如果 |
如果 |
UNWIND [
duration.between(date("1984-10-11"), date("1985-11-25")),
duration.between(date("1985-11-25"), date("1984-10-11")),
duration.between(date("1984-10-11"), datetime("1984-10-12T21:40:32.142+0100")),
duration.between(date("2015-06-24"), localtime("14:30")),
duration.between(localtime("14:30"), time("16:30+0100")),
duration.between(localdatetime("2015-07-21T21:40:32.142"), localdatetime("2016-07-21T21:45:22.142")),
duration.between(datetime({year: 2017, month: 10, day: 29, hour: 0, timezone: 'Europe/Stockholm'}), datetime({year: 2017, month: 10, day: 29, hour: 0, timezone: 'Europe/London'}))
] AS aDuration
RETURN aDuration
| aDuration |
|---|
|
|
|
|
|
|
|
行:7 |
duration_between()仅限 Cypher 25在 Neo4j 2026.02 中引入
语法 |
|
||
描述 |
计算 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示起始时刻的时间瞬间类型( |
|
|
|
表示结束时刻的时间瞬间类型( |
|
返回 |
|
||
此函数是 duration.between() 函数的别名,它是作为 Cypher® GQL 合规性的一部分引入的。
在 GQL 中,如果任一参数不是时间瞬间类型,则会引发数据异常 (22G03)。在 Cypher 中,可能会报告不同的错误(例如无效的调用签名),但严重程度相同。Cypher 的 duration.between() 以年、月、日返回日期差;GQL 的 duration_between() 仅以天数返回日期差。因此,对于相同的两个日期,结果可能会有所不同(例如,对于 2026-02-01 到 2026-03-02,Cypher 返回 P1M1D,而 GQL 返回 P29D)。每当跨度包含一个月或多个完整月份时,Cypher 的结果可能与 GQL 的结果不同。
如果 |
如果 |
如果 |
如果 |
RETURN duration_between(date("1984-10-11"), date("1985-11-25")) AS aDuration
| aDuration |
|---|
|
行:1 |
duration.inDays()
语法 |
|
||
描述 |
以天为单位计算 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示起始时刻的时间瞬间类型( |
|
|
|
表示结束时刻的时间瞬间类型( |
|
返回 |
|
||
如果 |
如果 |
如果 |
如果 |
小于一整天的任何差异都将被忽略。 |
通过返回 |
UNWIND [
duration.inDays(date("1984-10-11"), date("1985-11-25")),
duration.inDays(date("1985-11-25"), date("1984-10-11")),
duration.inDays(date("1984-10-11"), datetime("1984-10-12T21:40:32.142+0100")),
duration.inDays(date("2015-06-24"), localtime("14:30")),
duration.inDays(localdatetime("2015-07-21T21:40:32.142"), localdatetime("2016-07-21T21:45:22.142")),
duration.inDays(datetime({year: 2017, month: 10, day: 29, hour: 0, timezone: 'Europe/Stockholm'}), datetime({year: 2017, month: 10, day: 29, hour: 0, timezone: 'Europe/London'}))
] AS aDuration
RETURN aDuration
| aDuration |
|---|
|
|
|
|
|
|
行数: 6 |
duration.inMonths()
语法 |
|
||
描述 |
以月为单位计算 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示起始时刻的时间瞬间类型( |
|
|
|
表示结束时刻的时间瞬间类型( |
|
返回 |
|
||
如果 |
如果 |
如果 |
如果 |
小于一整月的任何差异都将被忽略。 |
通过返回 |
UNWIND [
duration.inMonths(date("1984-10-11"), date("1985-11-25")),
duration.inMonths(date("1985-11-25"), date("1984-10-11")),
duration.inMonths(date("1984-10-11"), datetime("1984-10-12T21:40:32.142+0100")),
duration.inMonths(date("2015-06-24"), localtime("14:30")),
duration.inMonths(localdatetime("2015-07-21T21:40:32.142"), localdatetime("2016-07-21T21:45:22.142")),
duration.inMonths(datetime({year: 2017, month: 10, day: 29, hour: 0, timezone: 'Europe/Stockholm'}), datetime({year: 2017, month: 10, day: 29, hour: 0, timezone: 'Europe/London'}))
] AS aDuration
RETURN aDuration
| aDuration |
|---|
|
|
|
|
|
|
行数: 6 |
duration.inSeconds()
语法 |
|
||
描述 |
以秒为单位计算 |
||
参数 |
名称 |
类型 |
描述 |
|
|
表示起始时刻的时间瞬间类型( |
|
|
|
表示结束时刻的时间瞬间类型( |
|
返回 |
|
||
如果 |
如果 |
如果 |
如果 |
通过返回 |
UNWIND [
duration.inSeconds(date("1984-10-11"), date("1984-10-12")),
duration.inSeconds(date("1984-10-12"), date("1984-10-11")),
duration.inSeconds(date("1984-10-11"), datetime("1984-10-12T01:00:32.142+0100")),
duration.inSeconds(date("2015-06-24"), localtime("14:30")),
duration.inSeconds(datetime({year: 2017, month: 10, day: 29, hour: 0, timezone: 'Europe/Stockholm'}), datetime({year: 2017, month: 10, day: 29, hour: 0, timezone: 'Europe/London'}))
] AS aDuration
RETURN aDuration
| aDuration |
|---|
|
|
|
|
|
行:5 |