TRUNC和TIMESTAMP问题

时间:2013-08-23 05:47:22

标签: sql oracle oracle11g oracle-sqldeveloper

- 工作正常 -

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得到NUMBER”

SELECT COLUMNS 
  FROM TABLE 
 WHERE RECORDDATE = TRUNC(:HISTDATE) 
即使输入相同的值,

也不起作用

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

根据我所做的测试,查询中没有任何错误。相同的查询

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

作为过程的一部分工作正常,但无法作为直接sql查询成功执行。可能是因为sql查询和程序在oracle中被编译了