Есть ли способ в XQuery получить текущее время в миллисекундах с некоторой эпохи?

XQuery предлагает различные date/time функции как current-dateTime(), однако я не могу найти тот, который дает мне время в МС С начала эпохи. Функции извлечения часов, минут и секунд, по-видимому, существуют слишком индивидуально.

каков правильный способ получить время эпохи (т. е. время unix или подобное) в XQuery?

3 ответов


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

возвращает количество секунд как длительность, а затем делится на 1 секунду, чтобы получить количество миллисекунд как число.


спасибо за советы. Я изменяю код для Oracle Service Bus 11g (OSB 11g) XPath editor в случае, если кто-то еще нуждается в нем

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

дополнительные трюки на ответ Адитьи для OSB 11g.

есть раздражающая ошибка в редакторах XQ, которая изменится div и оператор В a, (запятая).

просто поместите функцию преобразования перед этим кодом. например, xs: long, xs:string

ex.

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