我一直在研究一个包含英国国家铁路时刻表的数据集,它们以文本格式为您提供每列火车的出发和到达时间。
例如,可以这样创建代表停止的节点:
CREATE (stop:Stop {arrival: "0802", departure: "0803H"})
该时间格式不是特别适合查询,因此我想添加另一个属性,该属性指示自一天开始以来的秒数。
因此,我们想向节点添加“ arrivalSecondsSinceStartOfDay”和“ departureSecondsSinceStartOfDay”属性。 我编写了以下查询来计算这些属性的值。
- MATCH (stop:Stop)
- UNWIND ["arrival", "departure"] AS key
-
- WITH key,
- toInteger(substring(stop[key], 0, 2)) AS hours,
- toInteger(substring(stop[key], 2, 2)) AS minutes,
- CASE WHEN substring(stop[key], 4,1) = "H" THEN 30 ELSE 0 END AS seconds
-
- WITH key, (hours * 60 * 60) + (minutes * 60) + seconds AS secondsSin