запрос на изменение формата даты в столбце - PullRequest
0 голосов
/ 27 июня 2019

У меня есть отчет для создания, но есть небольшая проблема, которую я не могу решить, потому что сгенерированный мной столбец (дата) имеет другое значение. Я использую это в подзапросе. У меня вопрос, могу ли я использовать формат, чтобы я мог редактировать значение столбца? Пожалуйста, смотрите таблицу ниже для справки,

Моя колонка (дата) содержит

date_columns
2019-06-20T11:09:15.674+00:00
2019-06-20T11:09:15.674+00:00
2019-06-20T11:09:15.674+00:00
2019-06-20T11:09:15.673+00:00

Теперь моя проблема в том, что он вернул мне ORA-01427: однострочный подзапрос возвращает более одной строки из-за этого 2019-06-20T11:09:15.673+00:00. Могу ли я сделать формат, чтобы он выглядел как 2019-06-20T11:09:15?

Я попробовал запрос ниже, но ничего не изменилось. Он вернул мне ту же ошибку.

select distinct to_date(substr(dar.last_update_date,1,15),'YYYY-MM-DD HH:MI:SS')

select distinct to_date(dar.last_update_date,1,15,'YYYY-MM-DD HH:MI:SS')

Спасибо!

1 Ответ

2 голосов
/ 27 июня 2019

2019-06-20T11:09:15.673+00:00 представляется строкой даты и времени в официальном представлении XML .Мы можем превратить ее в фактическую метку времени, используя to_timestamp_tz(), а затем привести ее к дате:

select cast(
          to_timestamp_tz('2019-06-20T11:09:15.673+00:00','YYYY-MM-DD"T"HH24:MI:SS:FFTZH:TZM') 
        as date)
from dual;

Однако я не уверен, как это разрешит ошибку ORA-01427: single-row subquery returns more than one row.Это исключение возникает, когда мы используем подобный подзапрос…

where empno = ( select empno 
                from emp
                where deptno = 30
                and sal > 2300 )

… и подзапрос возвращает более одной строки, потому что предложение WHERE слишком слабое.Решение состоит в том, чтобы исправить предложение WHERE подзапроса, чтобы оно возвращало только одну строку (или использовать отличные в проекции подзапроса, если это невозможно).

...