Есть ли способ в 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")) }