Oracle VIEW - конвертируйте VARCHAR2 в DATE и найдите MIN / MAX DATE - PullRequest
0 голосов
/ 11 декабря 2018

Данные:

Field1  Field2  BEGIN_DT    END_DT
R1      R2      10012015    04082018
R1      R2      04092018    09302018
R1      R2      10012018    12319999

ДАТЫ в формате VARCHAR2, и я преобразовал их, используя:

BEGIN_DT = to_char(to_date(BEGIN_DT,'MMDDYY'), 'MM/DD/YYYY');
END_DT to_char(to_date(END_DT,'MMDDYY'), 'MM/DD/YYYY');

Моя проблема в том, что я пытаюсь найти самый ранний BEGIN_DT (мин) и последний END_DT (макс).

Когда я ввожу следующее в свой ПРОСМОТР, я не получаю самое раннее BEGIN_DT

min(begin_dt),
max(end_dt),

Я получаю 04/09/2018, что не является самым ранним BEGIN_DT

Но когда я ввожу это в свое представление, я получаю минимальную дату, но в неправильном формате

min(to_char(to_date(begin_dt, 'MM/DD/YYYY'))),
max(end_dt),

я получаю: 01-OCT-15 вместо 10/01/2015

Как найти минимальные / максимальные даты в правильном формате ММ / ДД / ГГГГ?Заранее благодарю за помощь.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Попробуйте это:

select to_char(begin_dt, ‘mm/dd/yyyy’) as begin_dt, 
       to_char(end_dt, ‘mm/dd/yyyy’) as end_dt 
from (select min(to_date(begin_dt, ‘mmddyyyy’)) as begin_dt, 
             max(to_date(end_dt, ‘mmddyyyy’)) as end_dt 
      from table)
0 голосов
/ 11 декабря 2018

Вы можете попробовать это:

 min(to_char(to_date(begin_dt, 'MMDDYYYY'), 'MM/DD/YYYY'))

или это:

to_char(min(to_date(begin_dt, 'MMDDYYYY')), 'MM/DD/YYYY')

при преобразовании даты в строку шаблон по умолчанию даты будет 01-OCT-15, поэтому вы должны включить свой собственный шаблон в синтаксис.

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