2016-06-14 10 views
0

無効な番号の例外を返す次のクエリがあります。私はちょうど日付(06/10/2016 11:53:46 AM)をsysdateで置き換えれば、それはfine.pleaseが私がどこで間違っているかを教えてくれます。PLSQLブロックのNUMBERエラーが無効です

DECLARE 
count NUMBER; 
BEGIN 
SELECT COUNT(*) INTO count FROM TABLE_NAME WHERE ID =123 
AND TO_CHAR('06/10/2016 11:53:46 AM','HH24:MI') > REJECTTIME; 
DBMS_OUTPUT.PUT_LINE(count); 
END; 
+0

*このブロックは何としていますか? – Mureinik

答えて

1

あなたは混乱しています。 sysdateは文字列ではなく、日付/時刻の値です。同等のコードを使用する場合は、次のようにします。

TO_CHAR(TO_DATE('06/10/2016 11:53:46 AM','MM/DD/YYYY HH:MI:SS AM'), 'HH24:MI') > REJECTTIME 

つまり、値を日付に変換してから比較する文字列に変換します。

文字列が'HH24:MI'フォーマットコードと互換性のある形式でないため、エラーが発生しています。

+0

それを指摘していただきありがとうございます:) – Karthik

1

AM PMの時刻形式を24時間形式に変換しようとしていますか?あなたが望むものがあれば、これを試すことができます。

SELECT COUNT(*) INTO count FROM TABLE_NAME WHERE ID =123 and 
to_char(to_date('06/10/2016 11:53:46 AM','MM/DD/YYYY HH:MI:SS AM'),'HH24:MI') > REJECTTIME 
+0

ありがとうございます:) – Karthik

関連する問題