ORA-01861: 文字与格式字符串不匹配 .我这边赋值用的 cc.topStartDate = new Date();
.为啥得到数据库字段值还是07-6月 -12 09.50.24.906000000 上午呢?这个字段值是啥格式?
直接相减我这样啊select * from COLUMN__CONTENTS where To_date(sysdate, 'yyyy-mm-dd ') - To_date( TOP_START_DATE, 'yyyy-mm-dd ')>7 ..结果还是报ORA-01861: 文字与格式字符串不匹配啊 select * from COLUMN__CONTENTS where sysdate - TOP_START_DATE>7 这样直接减就报ORA-00932: 数据类型不一致: 应为 INTERVAL DAY TO SECOND, 但却获得 NUMBER
追答TOP_START_DATE 这个在oracle中是DATE 类型是吧
追问我在java里赋值用的是 cc.topStartDate = new Date(); .在数据库中字段属性是TIMESTAMP(6).字段值是07-6月 -12 09.50.24.906000000 上午 有一个
select to_char(TOP_START_DATE , 'yyyy-mm-dd ') from COLUMN__CONTENTS 这样可以检索出数据来.不过我用这个select * from COLUMN__CONTENTS where To_char(To_date(sysdate, 'yyyy-mm-dd ') - To_date( TOP_START_DATE, 'yyyy-mm-dd '))>7 检索..又报ORA-01861: 文字与格式字符串不匹配了..额..这个
追答不能用TO_char ,你转换成字符串了如何比较 用下面的方法看是否有数据
select * from COLUMN__CONTENTS where To_date(sysdate, 'yyyy-mm-dd ') - To_date( TOP_START_DATE, 'yyyy-mm-dd ')>7
不行select * from COLUMN__CONTENTS where To_date(sysdate, 'yyyy-mm-dd ') - To_date( TOP_START_DATE, 'yyyy-mm-dd ')>7 报出来的还是ORA-01861: 文字与格式字符串不匹配..为啥select to_char(TOP_START_DATE , 'yyyy-mm-dd ') from COLUMN__CONTENTS 这样就可以检索出来呢?
追答看来问题就在这里To_date(sysdate, 'yyyy-mm-dd ')
你 select To_date(sysdate, 'yyyy-mm-dd ') 得到的是什麽结果?
这样那:
select * from COLUMN__CONTENTS where To_char(sysdate, 'yyyy-mm-dd ') - To_char( TOP_START_DATE, 'yyyy-mm-dd ')>7
参考资料:http://wenku.baidu.com/view/03134c8083d049649b66580d.html
追问select To_date(SysDate, 'yyyy-mm-dd ') 我这样输入 ORA-00923: 未找到要求的 FROM 关键字..我在格式里看了看.好像也没问题啊. 2012年6月7日 2012-6-7 11:07:10 时间格式就是H:mm:ss 日期的短日期格式yyyy-M-d 长日期格式yyyy'年'M'月'd'日' .应该是正常的啊
来自:求助得到的回答select * from COLUMN__CONTENTS where To_char(sysdate, 'yyyy-mm-dd ') - To_char( to_date(TOP_START_DATE, 'yyyy-mm-dd '))>7
这样我开始试过了.报.ORA-01722: 无效数字
你试试将yyyy-mm-dd 换成 yyyyMMdd .这样 to_char(sysdate ,'yyyyMMdd') 就好使了
select * from COLUMN__CONTENTS where To_char(sysdate, 'yyyyMMdd ') - To_char( TOP_START_DATE, 'yyyyMMdd ')>7