|
この章では、WebLogic Workshop のマッパー機能で使用できる XQuery 期間関数について説明します。マッパー機能を使用してクエリを生成し、クエリを編集して、提供されている XQuery 関数への呼び出しを追加します。詳細については、クエリ内での関数または演算子の呼び出しを参照してください。
マッパー機能で使用できる XQuery 関数および演算子以外にも、数多くの追加の関数および演算子が用意されています。マッパー機能のソース ビューを使用すると、これらの関数および演算子の呼び出しを手動でクエリに追加できます。 追加の関数と演算子のリストについては、次の URL にある W3C Web サイトで、 XQuery 1.0 and XPath 2.0 Functions and Operators - W3C Working Draft 16 August 2002 を参照してください。
http://www.w3.org/TR/2002/WD-xquery-operators-20020816
この節では、マッパー機能で使用できる期間関数のリストを示します。
$string-var
(yearMonthDuration フォーマットの文字列) を
yearMonthDuration データ型に変換します。
$string-var
の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()
」であり、SQL の null のようなものです。
xf:
YearMonthDuration(
xs:
string $string-var) —> xf:
yearMonthDuration
|
|||||
|
|||||
期間を yearMonthDuration 値として返します。
次のクエリ例のように、yearMonthDuration("P1Y2M")
を呼び出すと、1 年 2 か月に対応する yearMonthDuration 値が返されます。
let $mydur := xf:yearMonthDuration("P1Y2M")
<years>{xf:get-years-from-yearMonthDuration($mydur)}</years>
<months>{xf:get-months-from-yearMonthDuration($mydur)}</months>
次のクエリ例のように、yearMonthDuration("P9Y")
を呼び出すと、9 年に対応する yearMonthDuration 値が返されます。
let $mydur := xf:yearMonthDuration("P9Y")
<years>{xf:get-years-from-yearMonthDuration($mydur)}</years>
<months>{xf:get-months-from-yearMonthDuration($mydur)}</months>
次のクエリ例のように、yearMonthDuration("-P10M")
を呼び出すと、負の 10 か月に対応する yearMonthDuration 値が返されます。
let $mydur := xf:yearMonthDuration("-P10M")
<years>{xf:get-years-from-yearMonthDuration($mydur)}</years>
<months>{xf:get-months-from-yearMonthDuration($mydur)}</months>
W3C の
yearMonthDuration データ型の説明 。
$string-var
(dayTimeDuration フォーマットの文字列) を
dayTimeDuration データ型に変換します。
$string-var
の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()
」であり、SQL の null のようなものです。
xs:
dayTimeDuration(
xs: string $string-var) —>xf:
dayTimeDuration
|
|||||
|
|||||
期間を
dayTimeDuration 値として返します。
次のクエリ例のように、dayTimeDuration("P4DT9H8M20S")
を呼び出すと、4 日と 9 時間 8 分 20 秒に対応する dayTimeDuration 値が返されます。
let $mydur := xf:dayTimeDuration("P4DT9H8M20S")
<days>{xf:get-days-from-dayTimeDuration($mydur)}</days>
<hours>{xf:get-hours-from-dayTimeDuration($mydur)}</hours>
<minutes>{xf:get-minutes-from-dayTimeDuration($mydur)}</minutes>
<seconds>{xf:get-seconds-from-dayTimeDuration($mydur)}</seconds>
次のクエリ例のように、dayTimeDuration("PT2H20S")
を呼び出すと、2 時間 20 秒に対応する dayTimeDuration 値が返されます。
let $mydur := xf:dayTimeDuration("PT2H20S")
<days>{xf:get-days-from-dayTimeDuration($mydur)}</days>
<hours>{xf:get-hours-from-dayTimeDuration($mydur)}</hours>
<minutes>{xf:get-minutes-from-dayTimeDuration($mydur)}</minutes>
<seconds>{xf:get-seconds-from-dayTimeDuration($mydur)}</seconds>
次のクエリ例のように、dayTimeDuration("-P10D")
を呼び出すと、負の 10 日に対応する dayTimeDuration 値が返されます。
let $mydur := xf:dayTimeDuration("-P10D")
<days>{xf:get-days-from-dayTimeDuration($mydur)}</days>
<hours>{xf:get-hours-from-dayTimeDuration($mydur)}</hours>
<minutes>{xf:get-minutes-from-dayTimeDuration($mydur)}</minutes>
<seconds>{xf:get-seconds-from-dayTimeDuration($mydur)}</seconds>
W3C の
dayTimeDuration データ型の説明 。
$yearMonthDuration-var の年数部分から年数を抽出します。
$yearMonthDuration-var
の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()
」であり、SQL の null のようなものです。
xf:
get-years-from-yearMonthDuration(xf:
yearMonthDuration ?$yearMonthDuration-var)
—> xs: integer?
$yearMonthDuration-var
の年数部分から抽出した年数を整数として返します。
<years>{xf:get-years-from-yearMonthDuration(xf:yearMonthDuration("P2Y13M"))}</years>
注意 : | yearMonthDuration 作成文字列の月数部分で 13 か月 (13M) と指定されているため、合計年数はさらに 1 年増えますが、最初から年数部分に指定されている 2 年 (2Y) だけが返されます 。 |
<years>{xf:get-years-from-yearMonthDuration(xf:yearMonthDuration("-P5Y"))}</years>
<years>{xf:get-years-from-yearMonthDuration(xf:yearMonthDuration("P10M"))}</years>
W3C の
get-years-from-yearMonthDuration 関数の説明 。
W3C の
yearMonthDuration データ型の説明 。
$yearMonthDuration-var
の月数部分から月数を抽出します。
$yearMonthDuration-var
の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()
」であり、SQL の null のようなものです。
xf:
get-months-from-yearMonthDuration(xf:
yearMonthDuration? $yearMonthDuration-var)
—> xs: integer?
$yearMonthDuration-var
の月数部分から抽出した月数を整数として返します。
<months>{xf:get-months-from-yearMonthDuration(xf:yearMonthDuration("P2Y10M"))}</months>
<months>{xf:get-months-from-yearMonthDuration(xf:yearMonthDuration("-P5M"))}</months>
W3C の
get-months-from-yearMonthDuration 関数の説明 。
W3C の
yearMonthDuration データ型の説明 。
$dayTimeDuration-var
の日数部分から日数を抽出します。
$dayTimeDuration-var
の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()
」であり、SQL の null のようなものです。
xf:
get-days-from-dayTimeDuration(xf:
dayTimeDuration?$dayTimeDuration-var)
—> xs: integer?
$dayTimeDuration-var
の日数部分から抽出した日数を整数として返します。
<days>{xf:get-days-from-dayTimeDuration(xf:dayTimeDuration("P7DT25H8M20S"))}</days>
注意 : | dayTimeDuration 作成文字列の時間数部分で 25 時間 (25H) と指定されているため、合計日数はさらに 1 日増えますが、最初から日数部分に指定されている 7 日 (7D) だけが返されます。 |
<days>{xf:get-days-from-dayTimeDuration(xf:dayTimeDuration("-PT4D"))}</days>
<days>{xf:get-days-from-dayTimeDuration(xf:dayTimeDuration("PT2H20S"))}</days>
W3C の
get-days-from-dayTimeDuration 関数の説明 。
W3C の
dayTimeDuration データ型の説明 。
$dayTimeDuration-var
の時間数部分から時間数を抽出します。
$dayTimeDuration-var
の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()
」であり、SQL の null のようなものです。
xf:
get-hours-from-dayTimeDuration(xf:
dayTimeDuration?$dayTimeDuration-var)
—> xs: integer?
$dayTimeDuration-var
の時間数部分から抽出した時間数を整数として返します。
<hours>{xf:get-hours-from-dayTimeDuration(xf:dayTimeDuration("P7DT9H65M20S"))}</hours>
注意 : | dayTimeDuration 作成文字列の分数部分で 65 分 (65M) と指定されているため、合計時間数はさらに 1 時間増えますが、最初から時間数部分に指定されている 9 時間 (9H) だけが返されます。 |
<hours>{xf:get-hours-from-dayTimeDuration(xf:dayTimeDuration("-PT3H"))}</hours>
<hours>{xf:get-hours-from-dayTimeDuration(xf:dayTimeDuration("P2DT20S"))}</hours>
W3C の
get-hours-from-dayTimeDuration 関数の説明 (英語版)
W3C の
dayTimeDuration データ型の説明 。
$dayTimeDuration-var
の分数部分から分数を抽出します。
$dayTimeDuration-var
の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()
」であり、SQL の null のようなものです。
xf:
get-minutes-from-dayTimeDuration
(xf:
dayTimeDuration?$dayTimeDuration-var
) —> xs: integer?
$dayTimeDuration-var
の分数部分から抽出した分数を整数として返します。
<minutes>{xf:get-minutes-from-dayTimeDuration(xf:dayTimeDuration("P7DT9H12M65S"))}</minutes>
注意 : | dayTimeDuration 作成文字列の秒数部分で 65 秒 (65S) と指定されているため、合計分数はさらに 1 分増えますが、最初から分数部分に指定されている 12 分 (12M) だけが返されます。 |
<minutes>{xf:get-minutes-from-dayTimeDuration(xf:dayTimeDuration("-PT3M"))}</minutes>
<minutes>{xf:get-minutes-from-dayTimeDuration(xf:dayTimeDuration("P2DT20S"))}</minutes>
W3C の
get-minutes-from-dayTimeDuration 関数の説明 。
W3C の
dayTimeDuration データ型の説明。
$dayTimeDuration-var
の秒数部分から秒数を抽出します。
$dayTimeDuration-var
の値が空のシーケンスである場合は、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()
」であり、SQL の null のようなものです。
xf:
get-seconds-from-dayTimeDuration(xf:
dayTimeDuration?$dayTimeDuration-var) —> xf:
decimal?
$dayTimeDuration-var
の秒数部分から抽出した秒数を 10 進数として返します。
<seconds>{xf:get-seconds-from-dayTimeDuration(xf:dayTimeDuration("P7DT9H12M14S"))}</seconds>
<seconds>{xf:get-seconds-from-dayTimeDuration(xf:dayTimeDuration("-PT7S"))}</seconds>
<seconds>{xf:get-seconds-from-dayTimeDuration(xf:dayTimeDuration("P2DT6M"))}</seconds>
W3C の
get-seconds-from-dayTimeDuration 関数の説明。
W3C の
dayTimeDuration データ型の説明。
$dateTime-var1
と $dateTime-var2
の時間差を計算し、結果を
yearMonthDuration 値として返します。
$date-var1
の値が $date-var2
の値よりも過去を表す場合は、戻り値は負の期間になります。 ($dateTime-var1 で指定されている日付が $dateTime-var2
で指定されている日付よりも前である場合)。詳細については、後の例「差が負になる場合」を参照してください。
2 つの
dateTime 引数の時間差は、年数、月数、分数、および秒数を含むことができますが、yearMonthDuration 値には年数と月数しか格納できません。そのため、時間差は最も近い月数に丸められます。2 つの dateTime 引数の時間差が 15.5 日 (15 日と 12 時間) 以上である場合は、月数が切り上げられます。詳細については、後の例「切り上げられる場合」および「切り上げられない場合」を参照してください。
$date-var1
または $date-var2
の値が空のシーケンスである場合は、次のエラーが表示されます。
XQuery を実行中にエラーが発生しました : このメソッドに XQuery または XSLT をロードしている際にエラーが発生しました。Type error in function subtract-dates invocation: 予期される型 : [date@http://www.w3.org/2001/XMLSchema], given type empty
xf:
get-yearMonthDuration-from-dateTimes(
xs: dateTime $dateTime-var1, xs: dateTime $dateTime-var2) —>xf: yearMonthDuration
$dateTime-var1
と $dateTime-var2
の時間差を yearMonthDuration 値として返します。
$dateTime-var1
が $dateTime-var2
よりも過去を表す場合は、負の yearMonthDuration 値を返します ($dateTime-var1 で指定されている日付が $dateTime-var2
で指定されている日付よりも前である場合)。詳細については、後の例「差が負になる場合」を参照してください。
次のクエリ例では、$datetime-var1
で指定されている日付が $datetime-var2
で指定されている日付よりも後であるため、正の年数および月数が返されます。
let $dateTime-var1 := xs:dateTime("2002-12-26T00:00:01")
let $dateTime-var2 := xs:dateTime("2001-11-26T00:00:01")
let $mydur := xf:get-yearMonthDuration-from-dateTimes($dateTime-var1, $dateTime-var2)
<years>{xf:get-years-from-yearMonthDuration($mydur)}</years>
<months>{xf:get-months-from-yearMonthDuration($mydur)}</months>
次のクエリ例では、$dateTime-var1
で指定されている日付が $dateTime-var2
で指定されている日付よりも前であるため、負の年数および月数が返されます。
let $dateTime-var1 := xs:dateTime("2001-11-26T00:00:01")
let $dateTime-var2 := xs:dateTime("2002-12-26T00:00:01")
let $mydur := xf:get-yearMonthDuration-from-dateTimes($dateTime-var1, $dateTime-var2)
<years>{xf:get-years-from-yearMonthDuration($mydur)}</years>
<months>{xf:get-months-from-yearMonthDuration($mydur)}</months>
次のクエリ例では、$dateTime-var1
と $dateTime-var2
の時間差が 15.5 日 (15 日と 12 時間) であるため、1 か月の
yearMonthDuration が返されます。
let $dateTime-var1 := xs:dateTime("2002-11-16T12:00:00")
let $dateTime-var2 := xs:dateTime("2002-11-01T00:00:00")
let $mydur := xf:get-yearMonthDuration-from-dateTimes($dateTime-var1, $dateTime-var2)
<years>{xf:get-years-from-yearMonthDuration($mydur)}</years>
<months>{xf:get-months-from-yearMonthDuration($mydur)}</months>
次のクエリ例では、$dateTime-var1
と $dateTime-var2
の時間差が 15 日と 11 時間 59 分 59 秒 である (15.5 日に 1 秒足りない) ため、0 か月の
yearMonthDuration が返されます。
let $dateTime-var1 := xs:dateTime("2002-11-16T11:59:59")
let $dateTime-var2 := xs:dateTime("2002-11-01T00:00:00")
let $mydur := xf:get-yearMonthDuration-from-dateTimes($dateTime-var1, $dateTime-var2)
<years>{xf:get-years-from-yearMonthDuration($mydur)}</years>
<months>{xf:get-months-from-yearMonthDuration($mydur)}</months>
W3C の
get-yearMonthDuration-from-dayTimes 関数の説明
W3C の
yearMonthDuration データ型の説明
W3C の
dateTime データ型の説明
$dateTime-var1
と $dateTime-var2
の時間差を計算し、結果を
dayTimeDuration 値として返します。
$date-var1
の値が $date-var2
の値よりも過去を表す場合は、戻り値は負の期間になります。
$date-var1
または $date-var2
の値が空のシーケンスである場合は、次のエラーが表示されます。
XQuery を実行中にエラーが発生しました : このメソッドに XQuery または XSLT をロードしている際にエラーが発生しました。Type error in function subtract-dates invocation: 予期される型 : [date@http://www.w3.org/2001/XMLSchema], given type empty
xf:
get-dayTimeDuration-from-dateTimes(
xs:
dateTime $dateTime-var1
, xs: dateTime $dateTime-var2) —> xf: dayTimeDuration
$dateTime-var1
と $dateTime-var2
の時間差を dayTimeDuration 値として返します。
$dateTime-var1
が $dateTime-var2
よりも過去を表す場合は、負の dayTimeDuration 値を返します ($dateTime-var1 で指定されている日付が $dateTime-var2
で指定されている日付よりも前である場合)。詳細については、次の例「差が負になる場合」を参照してください。
次のクエリ例では、$dateTime-var1 で指定されている日付が $datetime-var2
で指定されている日付よりも後であるため、正の日数、時間数、分数、および秒数が返されます。
let $dateTime-var1 := xs:dateTime("2002-12-26T01:01:01")
let $dateTime-var2 := xs:dateTime("2001-11-26T00:00:00")
let $mydur := xf:get-dayTimeDuration-from-dateTimes($dateTime-var1, $dateTime-var2)
<days>{xf:get-days-from-dayTimeDuration($mydur)}</days>
<hours>{xf:get-hours-from-dayTimeDuration($mydur)}</hours>
<minutes>{xf:get-minutes-from-dayTimeDuration($mydur)}</minutes>
<seconds>{xf:get-seconds-from-dayTimeDuration($mydur)}</seconds>
次のクエリ例では、$dateTime-var1
で指定されている日付が $dateTime-var2
で指定されている日付よりも前であるため、負の日数、時間数、分数、および秒数が返されます。
let $dateTime-var1 := xs:dateTime("2001-11-26T00:00:00")
let $dateTime-var2 := xs:dateTime("2002-12-26T01:01:01")
let $mydur := xf:get-dayTimeDuration-from-dateTimes($dateTime-var1, $dateTime-var2)
<days>{xf:get-days-from-dayTimeDuration($mydur)}</days>
<hours>{xf:get-hours-from-dayTimeDuration($mydur)}</hours>
<minutes>{xf:get-minutes-from-dayTimeDuration($mydur)}</minutes>
<seconds>{xf:get-seconds-from-dayTimeDuration($mydur)}</seconds>
W3C の
get-dayTimeDuration-from-dateTimes 関数の説明。
W3C の
dayTimeDuration データ型の説明。
W3C の
dateTime データ型の説明。