Сравнение дат в базе данных Oracle - PullRequest
1 голос
/ 26 мая 2010

У меня есть две переменные TO_DATE и FROM_DATE. Моя таблица имеет два поля DOJ и DOL. Я хочу выбрать все записи, где DOJ < TO_DATE and DOL > FROM_DATE.

Как мне написать SQL-запрос для этого?

Ответы [ 2 ]

2 голосов
/ 26 мая 2010

Вы можете столкнуться с проблемами с переменной to_date, поскольку это встроенная команда Oracle. Вы можете обойти это, используя двойные кавычки везде, где используется переменная, например:

SELECT * FROM my_table WHERE doj < "to_date" AND dol > from_date;
0 голосов
/ 26 мая 2010

Не ясно, чем бы вы хотели заниматься.

ПЕРВАЯ ИНТЕРПРЕТАЦИЯ

Я хочу выбрать все записи, у которых DOJ FROM_DATE.

SELECT *
  FROM MY_TABLE
 WHERE DOJ < "TO_DATE" AND DOL > "FROM_DATE"; -- using double quotes in order to
                                              -- avoid confusion with TO_DATE
                                              -- built-in function with the same name.
                                              -- Thanks to kicsit ;-)

ВТОРАЯ ИНТЕРПРЕТАЦИЯ

Я хочу выбрать все записи, для которых DOJ FROM_DATE.

SELECT *
  FROM MY_TABLE
 WHERE DOJ < "TO_DATE"
UNION -- UNION ALL substituted with UNION, thanks to kicsit user ;-)
SELECT *
  FROM MY_TABLE
 WHERE DOL > "FROM_DATE";

... или - это то же самое:

SELECT * 
  FROM MY_TABLE 
 WHERE DOJ < "TO_DATE" OR DOL > "FROM_DATE";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...