You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Neo4j中将日期时间转换为时间戳?含加载数据示例

嘿,针对你问的这两个Neo4j日期时间转时间戳的问题,我来给你拆解解决方案,都是实际项目里常用的方法:

1. 在Neo4j中直接将日期时间转换为时间戳

Neo4j的datetime类型自带了获取时间戳的属性,处理起来很灵活:

  • 如果你的数据已经是datetime类型的属性,直接访问它的epochMillis属性就能得到毫秒级时间戳:
    MATCH (n:YourNode)
    RETURN n.yourDateTimeProp.epochMillis AS timestampInMillis
    
  • 如果日期是字符串格式(比如你给出的2020-04-07T12:39:38.027Z这种标准ISO格式),先把字符串转成datetime类型,再取时间戳:
    // 直接转换并获取毫秒级时间戳
    RETURN datetime("2020-04-07T12:39:38.027Z").epochMillis AS timestampInMillis
    
    // 如果需要秒级时间戳,转成整数即可
    RETURN toInteger(datetime("2020-04-07T12:39:38.027Z").epochMillis / 1000) AS timestampInSeconds
    
    上面的代码会分别返回1586243978027(毫秒)和1586243978(秒)。
2. 加载数据时将日期时间转换为时间戳

在导入数据阶段直接完成转换,能避免后续重复处理,这里分两种常见导入场景说明:

  • 使用LOAD CSV导入:
    假设你的CSV文件里有一列叫event_date,值是2020-04-07T12:39:38.027Z这类字符串,导入时可以直接转换:
    LOAD CSV WITH HEADERS FROM 'file:///your_dataset.csv' AS row
    CREATE (e:Event {
      eventTimestamp: datetime(row.event_date).epochMillis,
      eventName: row.event_name
    })
    
  • 使用APOC工具导入(比如JSON数据):
    如果是导入JSON格式的数据,同样可以在导入过程中处理日期转换:
    CALL apoc.load.json('file:///your_data.json') YIELD value
    CREATE (e:Event {
      eventTimestamp: datetime(value.event_date).epochMillis,
      eventDetails: value.details
    })
    

注意:如果你的日期格式不是标准ISO格式,就需要用APOC的apoc.date.parse函数指定格式,比如:

RETURN apoc.date.parse("2020-04-07 12:39:38", "ms", "yyyy-MM-dd HH:mm:ss") AS timestamp

不过你给出的2020-04-07T12:39:38.027Z是标准ISO格式,直接用datetime()函数最省心。

内容的提问来源于stack exchange,提问作者Pallavi Choudhary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 19:47:52