0
)この「ORA-01850」エラーは、問合せのLOGIN_TIME部分でのみ実行されています。ORA-01850 TO_NUMのエラー(TO_CHAR(TO_DATEファンクション
基本的に私の質問にはログイン時間を読んでください。もしそれが必要ならばそれはその後、秒に変換することができるように、バックダウンの24時間にその時間を短縮その後、24時間を超える。
私は、エラーを修正すると思う?しかし、どのように私もそれを行うのですか?
SELECT
CALL_DATE as "Date"
, TO_NUMBER(TO_CHAR(TO_DATE(CALL_TIME,'hh24:mi:ss'),'sssss'))/86400 as "Time"
, AGENT_GROUP as "Agent Group"
, AGENT_NAME as "Agent Name"
, STATE as "State"
, REASON_CODE as "Reason Code"
, TO_NUMBER(TO_CHAR(TO_DATE(LOGIN_TIME,'hh24:mi:ss'),'sssss'))/86400 as "Login Time"
, TO_NUMBER(TO_CHAR(TO_DATE(READY_TIME,'hh24:mi:ss'),'sssss'))/86400 as "Ready Time"
, TO_NUMBER(TO_CHAR(TO_DATE(NOT_READY_TIME,'hh24:mi:ss'),'sssss'))/86400 as "Not Ready Time"
FROM DB.AGENT_DETAILS
WHERE
AGENT_GROUP in ('Sales')
and TRUNC(CALL_DATE) BETWEEN '01-January-2017' and TRUNC(SYSDATE)
'READY_TIME'と' NOT_READY_TIME'、 'CALL_TIME'、' LOGIN_TIME'のデータ型は何ですか? 「VARCHAR2」の場合、「ORA-01850時間は0から23の間でなければなりません」は、少なくとも1つの行が24以上の数字で始まることを意味します。 DATEの場合、暗黙的な変換の問題が発生しています(つまり、既にDATEの場合は、TO_DATEを呼び出さないでください)。 –
すでにDATEになっている場合は、必要なものを得るための別の方法として '(call_time-trunc(call_time))* 86400'があります。これにより、非常に多くのデータ型変換が不要になります。 –
はい、VARCHAR2です。そして、はい、それは "ORA-01850時間は0と23時間の間でなければなりません"というエラーです。だから、どのように節を追加して、より大きな時を24に変換するのですか?それが私がやろうとしていることです。 – Melanie