首页 > 代码库 > ORA-01843: 无效的月份
ORA-01843: 无效的月份
昨天写程序,碰到要判断oracle中以varchar2存储的日期,表结构如下:
create table CDSGUS( name VARCHAR2(2000), cardno VARCHAR2(2000), descriot VARCHAR2(2000), ctftp VARCHAR2(2000), ctfid VARCHAR2(2000), gender VARCHAR2(2000), birthday VARCHAR2(2000), address VARCHAR2(2000), zip VARCHAR2(2000), dirty VARCHAR2(2000), district1 VARCHAR2(2000), district2 VARCHAR2(2000), district3 VARCHAR2(2000), district4 VARCHAR2(2000), district5 VARCHAR2(2000), district6 VARCHAR2(2000), firstnm VARCHAR2(2000), lastnm VARCHAR2(2000), duty VARCHAR2(2000), mobile VARCHAR2(2000), tel VARCHAR2(2000), fax VARCHAR2(2000), email VARCHAR2(2000), nation VARCHAR2(2000), taste VARCHAR2(2000), education VARCHAR2(2000), company VARCHAR2(2000), ctel VARCHAR2(2000), caddress VARCHAR2(2000), czip VARCHAR2(2000), family VARCHAR2(2000), version VARCHAR2(2000), id NUMBER(10) not null)
这是网上泄露的所谓开房信息数据库,闲来没事想做个程序,可是执行SQL语句时让人很郁闷:
1.
select * from cdsgus where to_date(birthday,‘yyyymmdd‘)<to_date(‘19880901‘,‘yyyymmdd‘);
2.
select * from cdsgus where to_date(birthday,‘yyyyMMdd‘)>to_date(‘19880901‘,‘yyyyMMdd‘);
执行1.时没有问题:
执行2.时却出现问题:
很是费解。
这不算什么,还有让我更纳闷的,因为3.可以执行成功:
3.
select * from cdsgus where to_date(birthday,‘yyyyMMdd‘)>to_date(‘19880801‘,‘yyyyMMdd‘);
问题就是这样的。网上没找到原因,昨天弄到两点,以我的失败告终。
有知道原因的希望指点一下(不是M大小写的原因)。
ORA-01843: 无效的月份
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。