Форматы даты в SQL - PullRequest
0 голосов
/ 10 сентября 2018
((SELECT ES.MCH_POS
           FROM IFSAPP.EQUIPMENT_SERIAL ES
          WHERE ES.CONTRACT = W.CONTRACT
            AND ES.MCH_CODE = W.MCH_CODE), 'yyyy/mm/dd') as SALE_DATE

Когда я запускаю этот код, возникает ошибка как ORA-00907: missing right parenthesis

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

В Oracle вам нужна функция to_char()

TO_CHAR(date-value,'date-format-mask')

Из вашего фрагмента кода он должен выглядеть примерно так, как я думаю):

select ....
, to_char((SELECT ES.MCH_POS
           FROM IFSAPP.EQUIPMENT_SERIAL ES
          WHERE ES.CONTRACT = W.CONTRACT
            AND ES.MCH_CODE = W.MCH_CODE
            AND rownum = 1), 'yyyy/mm/dd') as SALE_DATE

т.е. коррелированный подзапрос возвращает одно значение даты, и это значение даты затем форматируется как гггг / мм / дд

Примечание: я добавил and rownum = 1, потому что, как вы видите выше, этот коррелированный подзапрос ДОЛЖЕН возвращать только одно значение даты.

0 голосов
/ 10 сентября 2018

ORA-00907: отсутствует правая скобка

Это синтаксическая ошибка.Иногда это действительно означает, что у нас есть непарные левые скобки.Чаще всего это означает, что мы сделали bloomer, и у нас есть ключевое слово или выражение, где компилятор ожидал закрытия ).Иногда это просто указывает на опечатку.

, 'yyyy/mm/dd' - маска формата, используемая при приведении строки к дате или даты к строке.Тем не менее, ваш фрагмент не имеет функции TO_DATE () или TO_CHAR (), поэтому я предполагаю, что это ваша проблема.У вас есть маска формата, в которой компилятор думает, что должно быть просто ).

С помощью всего лишь подзапроса трудно быть уверенным, но, вероятно, вам нужно что-то вроде этого:

(SELECT to_char(ES.MCH_POS, 'yyyy/mm/dd') as SALE_DATE
       FROM IFSAPP.EQUIPMENT_SERIAL ES
      WHERE ES.CONTRACT = W.CONTRACT
        AND ES.MCH_CODE = W.MCH_CODE)

Если это не точное решение, которое вам требуется и не помогает вам его найти, отредактируйте свой вопрос , чтобы включить больше подробностей относительно проблемы, которую вы пытаетесь решить.

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