SQL: Найти отели, которые забронированы сегодня - PullRequest
0 голосов
/ 09 марта 2019

У меня есть база данных, которая состоит из следующих таблиц

HOTEL2(hno, hname, city, phone, room_type, price) 
GUEST2(gno, gname, address, phone) 
BOOKING2(Hno, gno, date_from, date_to) 

Я хочу получить всю информацию о сегодняшнем бронировании.Я написал следующий запрос, но он не работает должным образом.

SQL> SELECT *
  2  FROM BOOKING
  3  WHERE DATE_FROM=(SELECT SYSDATE FROM DUAL);

no rows selected

Я использую Oracle 10g.

Ответы [ 3 ]

0 голосов
/ 09 марта 2019

попробуйте, как показано ниже, используя trunc

    SELECT b.*
    FROM BOOKING b
    WHERE DATE_FROM=trunc(sysdate)
0 голосов
/ 09 марта 2019
  1. Если тип данных "date_from" и "date_to" равен date , тогда приведите следующий пример работы sql fiddle http://sqlfiddle.com/#!4/2df0d/5

  2. Если тип данных varchar , убедитесь, что преобразовали sysdate в точный формат строки, который был сохранен в таблице.В следующем примере

    выберите TO_CHAR (sysdate, «ГГГГ-ММ-ДД»), TO_CHAR (sysdate, «ММ-ДД-ГГГГ») из двойного

0 голосов
/ 09 марта 2019

Нет. Логика больше похожа на это:

select b.*
from booking
where date_from <= trunc(sysdate) and
      date_to >= trunc(sysdate);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...