XQuery OSB Преобразование строки в shortDate - PullRequest
0 голосов
/ 15 августа 2011

Мне нужно преобразовать строку в дату на одном из узлов xml который имеет следующий xsd:

  <xs:element minOccurs="0" name="executionDate" type="general:ShortDate"/>

моя строка находится в формате ггггммдд, мне нужно преобразовать его в формат короткой даты ддммггг.

Я использую OSB и пытаюсь сделать это следующим образом:

{xs:dateTime(xs:date('20041212'))}

и я получаю следующую ошибку:

<con:reason xmlns:con="http://www.bea.com/wli/sb/context">OSB Insert action failed updating variable "body": {err}XP0021: "20041212": can not cast to {http://www.w3.org/2001/XMLSchema}date: error: date: Invalid date value: wrong type: 20041212</con:reason>

Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 15 августа 2011

В XQuery дата представлена ​​в формате ISO: гггг-мм-дд.Чтобы ваш запрос был скомпилирован, вы хотите преобразовать его в:

{xs:dateTime(xs:date('2004-12-12'))}

, но затем получите результат

2004-12-12T00:00:00

, который, я не думаю, вы ищете.

Разве вы не можете просто сделать это?

concat(substring($date, 7, 2), substring($date, 5, 2), substring($date, 1, 4))
...