1
SQLクエリ:2つのdateTimesの間の秒数を数えるXQuery式は何ですか?
SELECT
ROUND((CAST(DATEATTRIBUTE2 AS DATE) - CAST(DATEATTRIBUTE1 AS DATE)) * 86400) AS result
FROM TEST_TABLE;
両方DATEATTRIBUTE1
とDATEATTRIBUTE2
TIMESTAMP
タイプのものです。
私が試したし、次ののXQueryが出ている:
fn:days-from-duration(fn:subtract-dateTimes-yielding-dayTimeDuration(
$P_REQUEST/ns1:DATEATTRIBUTE2,$P_REQUEST/ns1:DATEATTRIBUTE1))*86400
しかし、日付が同じですが、違いはtime.E.g.であった場合に、これは例のために失敗しましたDATEATTRIBUTE1
は2017-02-23T01:17:18.0000
とDATEATTRIBUTE2
あるときXQueryは助けを事前に0
感謝を返しながら、SQLクエリは2を返し2017-02-23T01:17:20.7550
です!
これを使ってみましたが、{err} XQ0017: "{http://www.w3.org/2001/XMLSchema}dayTimeDuration":未知の関数(または引数の数が間違っています) – noobCoder
これは、 XQueryのすべてをサポートしていない場合は、Oracle固有のものかもしれません。どのように '' PT1S ''をxs:dayTimeDuration'としてキャストするのですか? xs:dayTimeDurationは実際にはXMLスキーマ1.1(XQuery 1.0も)なので、サポートされていない場合は、xs:duration'または 'xs:duration(" PT1S ")'としてキャストされたPT1Sでもかまいません。 –
こんにちは@Ghislain!最終的にはxs:dayTimeDurationの代わりにxdt:dayTimeDurationを使用して動作し、functxライブラリはかなりクールに見えましたので、OSBはそれをインポートしようとしましたが、OSBは 'XQ0016:module feature not supported(sorry)'エラーを出しました。 – noobCoder