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

时间:2011-09-20 08:41:22

标签: xpath xquery

XQuery提供了各种date/time函数,例如current-dateTime(),但是我似乎找不到一个能让我在毫秒中获得自Epoch以来的时间的函数。提取小时,分钟和秒的功能似乎过于单独存在。

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

3 个答案:

答案 0 :(得分:26)

(current-dateTime() - xs:dateTime("1970-01-01T00:00:00-00:00")) div xs:dayTimeDuration('PT0.001S')

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

答案 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") }

答案 2 :(得分:0)

OSB 11g的 Aditya答案的其他技巧。

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

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

离。

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