我正在尝试在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_ID
为varchar2(20)
。
我不明白为什么Oracle数据库试图将参数值转换为日期值。发生了什么事?
答案 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列而没有。