ПОЯСНЕНИЯ
Когда я упрощаю запрос , т.е.
SELECT TO_CHAR(MIN(I.INCIDENTID)) AS "Incident ID",
TRIM(TO_CHAR(I.CREATIONDATE,'DD-MON-YYYY')) AS "Creation Date"
FROM INCIDENT I
GROUP BY TRIM(TO_CHAR(I.CREATIONDATE,'DD-MON-YYYY'))
Я получаю
Но если я включу в свой фактический запрос более 164 000 отдельных строк, я получу
Но я ожидаю этого (единственное отличие - дата создания должна иметь правильный формат даты, а не эту сложную строку)
ОРИГИНАЛЬНЫЙ ВОПРОС
Я читаю дату и время из внешней базы данных Oracle и успешно обрезал все лишние пробелы с помощью TRIM(I.CREATIONDATE)
.
Я подтвердил это, потому что мой запрос SQL отображает только различные значения даты
Однако TRIM(I.CREATIONDATE)
превращает 2/26/2019 11:05:44 AM
в 26-FEB-19 11.05.43.925000 AM
, но я хочу только 26-FEB-19
Когда я применяю регулярное выражение только для получения даты, то есть REGEXP_SUBSTR(TRIM(I.CREATIONDATE),'[^ ]+')
, оно, безусловно, выводит 26-FEB-19
, но каким-то образом добавляются дополнительные пробелы, потому что я получаю повторяющиеся даты.
Я пытался применить TRIM
во второй раз, то есть TRIM(REGEXP_SUBSTR(TRIM(I.CREATIONDATE),'[^ ]+'))
, но я все еще получаю дубликаты
Затем я попытался сначала запустить регулярное выражение, а затем обрезать, но это не работает, то есть TRIM(REGEXP_SUBSTR(I.CREATIONDATE,'[^ ]+'))
все еще дает дубликаты.
Пожалуйста, помогите