SQL строки на дату - PullRequest
       3

SQL строки на дату

0 голосов
/ 22 февраля 2019

У меня есть поле Comments (Clob), которое представляет собой коллекцию времени, когда был сделан комментарий, комментарий сделан и сам комментарий.

Мне нужно извлечь 'Date', 'Comment by' изполе.

Используя регулярные выражения, я смог извлечь поля даты и поле comment_by, но дата в символе.

Я не могу преобразовать это поле в Date.

Комментарии Пример:

7/18/2018 10:36:29 AM , beginj с просьбой об отмене, поскольку шаги больше не осуществимы.

5/16/2018 8:28:04 AM , josephav Не применимо для GSC

Я могу получить «дату» с помощью этого регулярного выражения (RE):

regexp_substr((dbms_lob.substr(requestcommentsdisplay,50,1)),'[^ ]+',1)

Я могу получить имя Comment_by с помощью этого регулярного выражения(RE)

regexp_substr((dbms_lob.substr(requestcommentsdisplay,50,1)),'[a-z]+',1) 

Таким образом, даты после того, как я извлеку с использованием RE, являются следующими:

10/5/2017
4/2/2012
12/31/2015
3/16/2014

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

Любая помощь приветствуется:)

Спасибо

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Вы можете установить параметр nls_territory в зависимости от вашей страны, прежде чем вызывать запрос

alter session set nls_territory = 'AMERICA';--alternatively convert to 'TURKEY' as an example

, а затем попробовать следующее

with tab(date_chr) as
(
 select '10/5/2017'  from dual union all
 select '4/2/2012'   from dual union all
 select '12/31/2015' from dual union all
 select '3/16/2014'  from dual  
)
select to_date(date_chr,'MM/DD/YYYY')
  from tab;
0 голосов
/ 22 февраля 2019

Используйте

   SELECT 
   CASE WHEN (length(<regex_string>). 
     <9)
  Then 
TO_DATE('0'||<regex_string>,'MM/DD/YYYY') 

, но oracle также анализирует его с одной цифрой, хотя вы можете попытаться отладить и напечатать даты для одной цифры с помощью этого условия
.

   ELSE
TO_DATE(<regex_string>,'MM/DD/YYYY') 
    END CASE FROM TABLE;

для преобразования строки в формат даты, так как значение o / p, полученное вами из regex_substr, является строкой.

Это позволит вам прочитать ввод в формате, который вы получите, и будетпреобразовать в фактический формат даты оракулов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...