Oracle (10g) はここで適切な TIME 比較を行っていますか、それとも 10 進数の時間に変換してから比較する必要がありますか? 例えば、
IF (SELECT TO_CHAR(sysdate,'HH24:MI:SS') from dual) <= '15:00'
THEN (...)
ありがとう。
Oracle (10g) はここで適切な TIME 比較を行っていますか、それとも 10 進数の時間に変換してから比較する必要がありますか? 例えば、
IF (SELECT TO_CHAR(sysdate,'HH24:MI:SS') from dual) <= '15:00'
THEN (...)
ありがとう。
IF (sysdate <= trunc(sysdate)+15/24)
THEN (...)
トリックを行う必要があります...
select
ステートメント内でa を実行することはできませんが、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 が私が到着する前に投稿したばかりなので、日付を比較することをお勧めします。