本文共 2503 字,大约阅读时间需要 8 分钟。
Neo4j底层默认是不支持类似于time,datetime等时间格式存储的,因此如果Node节点的属性如果想保存有类似createTime日期格式的形式可以通过系统的timestamp()函数来获取当前的时间:
我们可以通过call apoc.help('timestamp')
来查看这个函数的说明:实际上是使用System.currentTimeMillis()返回当前的毫秒的时间戳。
return timestamp()
但是1528183330725这种整数毫秒的形式可能不太直观,我们还是希望看到类似:yyyy-MM-dd HH:mm:ss,如2018-06-05 15:22:10这类形式日期,并以字符串的形式存储于节点的属性中。
因此,我们可以使用APOC的函数apoc.date.format来完成这个转换操作。 看看这个函数的一些基本说明和参数call apoc.help('apoc.date.format')
type | name | text | signature |
---|---|---|---|
function | apoc.date.format | apoc.date.format(12345,(‘ms|s|m|h|d’),(‘yyyy-MM-dd HH:mm:ss zzz’),(‘TZ’)) get string representation of time value optionally using the specified unit (default ms) using specified format (default ISO) and specified time zone (default current TZ) | apoc.date.format(time :: INTEGER?, unit = ms :: STRING?, format = yyyy-MM-dd HH:mm:ss :: STRING?, timezone = :: STRING?) :: (STRING?) |
* time: INTEGER 第1个参数是整型;
* unit: STRING 第2个参数是字符串,取值有ms|s|m|h|d,表示:毫秒|秒|分|时|日,是第1个参数的单位,默认值是ms,即毫秒; * format: STRING 第3个参数表示转换输出的格式,如yyyy-MM-dd HH:mm:ss zzz(精确到秒,zzz表示返回时区); * timezone: STRING 第4个参数表示时区,默认是当前Neo4j数据库配置的时区,可以在neo4j.conf中进行dbms.db.timezone配置,默认时区是UTC;分析完这个函数,我们就可以编写以下的转换操作:
return apoc.date.format(timestamp(),'ms','yyyy-MM-dd HH:mm:ss','CTT') as createTime
(这里的CTT表示的时区是Asia/Shanghai,文末会附上所有时区的说明和对应的时区id)
结果: ╒═════════════════════╕ │”createTime” │ ╞═════════════════════╡ │”2018-06-05 16:03:19”│ └─────────────────────┘注意:如果yyyy-MM-dd HH:mm:ss中的HH变为小写,即yyyy-MM-dd hh:mm:ss,那么得到的小时会是12小时的表示形式,即上面的createTime变为2018-06-05 04:03:19
那么在实际创建带createTime日期信息节点的时候cypher语句为:
CREATE (testNode:TestNode { pro:"test",createTime: apoc.date.format(timestamp(),'ms','yyyy-MM-dd HH:mm:ss','CTT')})return testNode
建议的写法为如下所示:可以在后续其他语句共同使用这个createTime变量,生成一次即可
WITH apoc.date.format(timestamp(),'ms','yyyy-MM-dd HH:mm:ss','CTT') as createTimeCREATE (testNode:TestNode {pro:"test",createTime:createTime})return testNode
EST - -05:00
HST - -10:00 MST - -07:00 ACT - Australia/Darwin AET - Australia/Sydney AGT - America/Argentina/Buenos_Aires ART - Africa/Cairo AST - America/Anchorage BET - America/Sao_Paulo BST - Asia/Dhaka CAT - Africa/Harare CNT - America/St_Johns CST - America/Chicago CTT - Asia/Shanghai EAT - Africa/Addis_Ababa ECT - Europe/Paris IET - America/Indiana/Indianapolis IST - Asia/Kolkata JST - Asia/Tokyo MIT - Pacific/Apia NET - Asia/Yerevan NST - Pacific/Auckland PLT - Asia/Karachi PNT - America/Phoenix PRT - America/Puerto_Rico PST - America/Los_Angeles SST - Pacific/Guadalcanal VST - Asia/Ho_Chi_Minh欢迎加微信交流
转载地址:http://zgwli.baihongyu.com/