2013-08-23 2 views
0

--works fine--TRUNC и TIMESTAMP вопрос

SELECT COLUMNS 
    FROM TABLE 
WHERE 
    AND RECORDDATE = TRUNC((TO_TIMESTAMP('14/12/2012 12:00:00', 
             'DD/MM/YYYY HH24:MI:SS') 
          )) 

Но когда я создаю переменную HISTDATE и пытается ввести

TO_TIMESTAMP('14/12/2012 12:00:00', 'DD/MM/YYYY HH24:MI:SS') 

в переменную во время выполнения, он дает ошибку говоря «ожидаемый TIMESTAMP получен НОМЕР "

SELECT COLUMNS 
    FROM TABLE 
WHERE RECORDDATE = TRUNC(:HISTDATE) 

не работает, даже если введено такое же значение

+0

Что такое переменный тип HISTDATE? – Harshit

+0

Тип переменной TIMESTAMP – michael

+0

Я пробовал и для меня его работу для каждого сценария. Пожалуйста, проверьте ниже. timestamp histdate: = TO_TIMESTAMP ('14/12/2012 12:00:00 ',' DD/MM/YYYY HH24 :МИСС'); begin - выберите время в histdate из tuti; dbms_output.put_line (histdate); конец; выберите время из tuti, где время = TO_TIMESTAMP ('14/12/2012 12:00:00 ',' DD/MM/YYYY HH24: MI: SS '); – Harshit

ответ

0

Согласно тестирования я сделал, не было ничего плохого в запросе , Тот же запрос

SELECT COLUMNS 
    FROM TABLE 
WHERE RECORDDATE = TRUNC(:HISTDATE) 

работал нормально как часть процедуры, но не смог выполнить его как прямой запрос sql. Может быть, потому что sql-запрос и процедуры скомпилированы в oracle

0

если вы можете сделать следующее:

запрос:

SELECT COLUMNS 
    FROM TABLE 
WHERE 
    AND RECORDDATE = TRUNC((TO_TIMESTAMP(:HISTDATE, 
             'DD/MM/YYYY HH24:MI:SS') 
          )) 
; 

вход для: HISTDATE
14/12/2012 12:00:00