Проблема с приведением и вычислением типов данных в postgresql - PullRequest
0 голосов
/ 09 ноября 2018

у меня код выглядит так:

CASE
           WHEN EXTRACT(YEAR
                        FROM REPORTING_DATE) >= EXTRACT(YEAR
                                                              FROM ('2018/11/09 14:11:31' :: DATE)) THEN EXTRACT(YEAR
                                                                                                    FROM REPORTING_DATE)
           WHEN EXTRACT(YEAR
                        FROM ('2018/11/09 14:11:31' :: DATE) - EXTRACT(YEAR
                                                          FROM REPORTING_DATE)) >= 2 THEN EXTRACT(YEAR
                                                                                                        FROM ('2018/11/09 14:11:31' :: DATE))
           WHEN EXTRACT(YEAR
                        FROM REPORTING_DATE) < EXTRACT(YEAR
                                                             FROM ('2018/11/09 14:11:31' :: DATE))
                AND EXTRACT(YEAR
                            FROM REPORTING_DATE) - EXTRACT(YEAR
                                                                 FROM ('2018/11/09 14:11:31' :: DATE)) < 2
                AND EXTRACT(MONTH
                            FROM ('2018/11/09 14:11:31' :: DATE)) < 6 THEN EXTRACT(YEAR
                                                                      FROM REPORTING_DATE)
           ELSE EXTRACT(YEAR
                        FROM ('2018/11/09 14:11:31' :: DATE))

После продолжения отображается сообщение:

Оператор не существует: дата - двойная точность

На месте:

WHEN EXTRACT(YEAR
                        FROM ('2018/11/09 14:11:31' :: DATE) - EXTRACT(YEAR
                                                          FROM REPORTING_DATE)) >= 2

Несмотря на то, что я бросил строку:

2018/11/09 14:11:31 -> на дату

и

EXTRACT (YEAR FROM ('2018/11/09 14:11:31' :: DATE)) -> EXTRACT (YEAR FROM ...) -> тип двойного значения возврата

Но это все еще показывает это сообщение. Кто-нибудь может сказать мне, что я сделал не так. и как я мог это исправить. Спасибо.

1 Ответ

0 голосов
/ 09 ноября 2018

У вас есть круглые скобки в неправильном месте. Должно быть

EXTRACT( YEAR FROM ('2018/11/09 14:11:31' :: DATE)
        ) - EXTRACT(YEAR FROM DATE REPORTING_DATE) >= 2
      --^                                       --^
   --put here                                  --not here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...