Вы не можете сделать select
в операторе if
, но вы можете сделать прямое сравнение с sysdate.Если вы делаете это так, вероятно, было бы лучше использовать число, а не полагаться на неявное преобразование.Вам также не нужны дополнительные минуты и т. Д. Что-то вроде
begin
if to_number(to_char(sysdate,'HH24')) <= 15 then
-- do something
end if;
end;
Если вы действительно хотите использовать минуты, то, преобразовав их в строку без двоеточия, вы можете сделать более прямое сравнение.До тех пор, пока дата / время конвертируются в 24-часовой формат без дополнительных данных и в обратном порядке, сравнение года, месяца, дня, часа и т. Д. Всегда будет точным, например,
begin
if to_char(sysdate,'HH24MI') <= '1515' then
-- do something
end if;
end;
Однако часто это лучше делатьСравнение дат, как @cagcowboy только что опубликовал, прежде чем я туда попал!