2011-09-20 7 views
11

XQueryは、current-dateTime()のようなさまざまな機能を提供していますが、私はミリ秒の時刻を与​​えるものを見つけることができません。エポック以来、です。時間、分、秒を抽出する関数も個別に存在するようです。いくつかのEpochから現在の時間をミリ秒単位で取得する方法はありますか?

XQueryでエポック時間(つまり、UNIX時間など)を取得する正しい方法は何ですか?

答えて

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

は、秒数を継続時間として返し、1秒で除算してミリ秒数を数値として取得します。

+0

ありがとうございます。ありがとうございます。私はdateTimeの後に余分な閉じ括弧があり、適切な実行のためにはxs:dateTimeである必要があると思います。 – jbx

+0

一重引用符または二重引用符を一貫して使用することをお勧めします。これをXSLTタグの 'select'属性の値として使用すると、その属性の引用符と衝突します。 –

+0

この1970-01-01は何ですか?なぜこれでcurrentTimeを減算していますか? – basari66

4

ヒントありがとうございます。私は他の誰かがそれをOSB 11gのアーディティヤの答え

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

私の一日を救ってくれてありがとう、ありがとうございました – Tol182

0

追加トリックを必要とする場合には、Oracle Service Bus 11gの(OSB 11gの)のXpathエディタのコードを変更します。

、(カンマ)にのdivオペレータを変更しますXQエディタ上の迷惑なバグが存在しています。

コードの前に変換機能を追加するだけです。 xs:long、xs:stringなど

ex。

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

面白い... –

関連する問題