XQuery
提供了各种date/time
函数,例如current-dateTime()
,但是我似乎找不到一个能让我在毫秒中获得自Epoch以来的时间的函数。提取小时,分钟和秒的功能似乎过于单独存在。
在XQuery
中获取大纪元时间(即unix时间或类似时间)的正确方法是什么?
答案 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")) }