【发布时间】:2011-11-20 21:26:18
【问题描述】:
XQuery 提供了各种date/time 函数,例如current-dateTime(),但是我似乎找不到一个可以让我自 Epoch 以来的 毫秒 时间的函数。提取小时、分钟和秒的函数似乎也单独存在。
在XQuery 中获取 Epoch 时间(即 unix 时间或类似时间)的正确方法是什么?
【问题讨论】:
XQuery 提供了各种date/time 函数,例如current-dateTime(),但是我似乎找不到一个可以让我自 Epoch 以来的 毫秒 时间的函数。提取小时、分钟和秒的函数似乎也单独存在。
在XQuery 中获取 Epoch 时间(即 unix 时间或类似时间)的正确方法是什么?
【问题讨论】:
(current-dateTime() - xs:dateTime("1970-01-01T00:00:00-00:00")) div xs:dayTimeDuration('PT0.001S')
返回秒数作为持续时间,然后除以 1 毫秒得到毫秒数。
【讨论】:
select 属性的值,那么它将与该属性的引号冲突。
感谢您的提示。我修改了 Oracle Service Bus 11g (OSB 11g) Xpath 编辑器的代码,以防其他人需要它
{ (fn:current-dateTime() - xs:dateTime("1970-01-01T00:00:00-00:00")) div xdt:dayTimeDuration("PT0.001S") }
【讨论】:
关于 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")) }
【讨论】: