不在查询

时间:2016-06-13 18:28:47

标签: sql oracle datetime oracle11g

我正在尝试在Oracle 11g数据库中运行此查询:

SELECT * FROM BALANCE B
WHERE B.EMPLOY_ID = '0016'
AND B.PROJETCT_ID = '5TM-1305002.01.01.01'

但会显示以下错误:

ORA 01847 : day of the month must be between 1 and last day of the month

EMPLOY_ID字段为varchar2(4)PROJECT_IDvarchar2(20)

我不明白为什么Oracle数据库试图将参数值转换为日期值。发生了什么事?

2 个答案:

答案 0 :(得分:0)

如果你试试这会怎么样?

  

SELECT * FROM BALANCE B

     

WHERE TO_CHAR(B.EMPLOY_ID)='0016'

     

AND TO_CHAR(B.PROJETCT_ID)='5TM-1305002.01.01.01'

答案 1 :(得分:0)

可能是由于表格中某个日期列中的数据无效。

您可以使用rownum条件检查查询,只是为了确保where子句是否正确。

如果它正常工作,那么因为B.EMPLOY_ID和B.PROJETCT_ID列而没有。