有没有什么方法可以让XQuery从一些Epoch开始以毫秒为单位获取当前时间?

问题描述 投票:11回答:3

XQuery提供各种date/time功能,如current-dateTime(),但我似乎无法找到一个给我时间以毫秒自Epoch以来的时间。提取小时,分钟和秒的功能似乎过于单独存在。

XQuery获得大纪元时间(即unix时间或类似时间)的正确方法是什么?

xpath xquery
3个回答
26
投票
(current-dateTime() - xs:dateTime("1970-01-01T00:00:00-00:00")) div xs:dayTimeDuration('PT0.001S')

返回作为持续时间的秒数,然后除以1秒以获得作为数字的毫秒数。


4
投票

感谢您的小费。我修改了Oracle Service Bus 11g(OSB 11g)Xpath编辑器的代码,以防其他人需要它

{ (fn:current-dateTime() - xs:dateTime("1970-01-01T00:00:00-00:00")) div xdt:dayTimeDuration("PT0.001S") }

0
投票

关于Aditya对OSB 11g的回答的其他技巧。

XQ编辑器上有一个恼人的错误,它会将div和operator更改为(逗号)。

只需在该代码前加上转换函数即可。例如xs:long,xs:string

恩。

{ xs:long((fn:current-dateTime() - xs:dateTime("1970-01-01T00:00:00-00:00")) div xdt:dayTimeDuration("PT0.001S")) }
© www.soinside.com 2019 - 2024. All rights reserved.