
从你的SQL中,猜想xxcsrq字段应该是Date型的,xxsfzh可能是存储了日期的字符字段,想从xxsfzh字段提取出日期再与xxcsrq做比较,如果是这样应该改为以下语句:
select
from xx
where csrq <> to_date(substr(sfzh,7,4)||'-'||substr(sfzh,11,2)||'-'||substr(sfzh,13,2),'YYYY-MM-DD')
不知道你要什么,简要的说一下oracle日期直接量的写法希望对你有帮助:
日期: date '2010-07-07'
日期时间: timestamp '2010-07-07 13:38:00'
其他的字符串转换为日期的可以使用to_date函数,具体用法参考oracle的帮助或上网查一下
是否日期,用to_date处理,如果to_date报错就不是日期,当然也可以写个function
日否身份z号码,这个比较复杂,可以写个function实现,代码我就不放这里了
case when is_date(String) or is_idCard(String) then '1' else '2' end as birto_char函数可以将日期值格式化为字符串; to_date函数将字符串按指定格式转换成日期值。
在查询中, 将'2014/01/01'转换成日期值,然后再用作查询条件,这样会比较好。
select where enddate < to_date('2014/01/01', 'yyyy/mm/dd')
通过Oracle执行计划可以看到SQL的执行时间。
EXPLAIN PLAN FOR
SELECT FROM table;
SELECT FROM TABLE(DBMS_XPLANDISPLAY);
SQL>set timing on --显示执行时间
SQL>set autorace on C显示执行计划
SQL>set autorace on C显示执行计划
SQL>set autotrace traceonly C只显示执行计划即不显示查询出来的数据
设置完毕后执行SQL语句就会显示执行时间。
算是一个小知识,PLSQL中的日期格式,默认可能很难看,反正我不喜欢,我就把它改成了 yyyy-mm-dd 这种类型
这个需要修改系统的环境变量
在Windows中,增加环境变量
参数设置为你想要的格式:
然后,重启下PLSQL就行了
以上就是关于在plsql里执行查询语句提示:数据类型不一致 应为date 却获得了number全部的内容,包括:在plsql里执行查询语句提示:数据类型不一致 应为date 却获得了number、plsql 日期时间格式、如何在plsql中利用case when 判断一个字段是否符合日期,或者身份z号,仔细看题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)