请大家帮忙呀
select avg(V11012) as Result_ave FROM T_mete_realtime
where IIIII=50136 and VYEAR=to_number(to_char('04-12月-07','YYYYMM')) and
VDAY=to_number(to_char('04-12月-07','DD'));
错在哪里了?
或这句:
begin
dbms_output.put_line(to_date('12/04/07','YYYYMM'));
end;
/ 也是一样的错误?不明白哪错了啊!真着急!
select avg(V11012) as Result_ave FROM T_mete_realtime
where IIIII=50136 and VYEAR=to_number(to_char('04-12月-07','YYYYMM')) and
VDAY=to_number(to_char('04-12月-07','DD'));
错在哪里了?
或这句:
begin
dbms_output.put_line(to_date('12/04/07','YYYYMM'));
end;
/ 也是一样的错误?不明白哪错了啊!真着急!
解决方案 »
- 导入导出数据
- 求助: <EBS报表开发>使用xml标签,输出表格不正常
- 求助,在oracle中查询sqlserver的表结果少数据
- 《oracle性能优化模块》第二讲视频资料
- ORACLE 10G SQLPLUS不输入主机字符串能连上,输入了就连不上了,请问什么原因?
- 请问新建一个表时,有一个“方案”下拉供我选择,这是什么意思,,感谢
- C#程序连接Oracle问题
- oracle8i的卸载问题,急
- 如何用sql语句在oracle中得到任意年份的年,季度,月份,日期列表
- 在oracle中建表的问题
- 普通表改成分区表后,原有的存储过程调用输入时间参数的游标执行会出错,把输入的时间变量换成常量的就正常,奇怪
- 请教一个plsql的日期转换成字符串的问题!着急啊!
错误
应该是
to_date('12/04/07','mm/dd/yy')); to_number(to_char('04-12月-07','YYYYMM'))
to_char(date,'yyyymm')才是正确格式,你进而本身就是char类型了,怎么再转?
就算是用to_date也不对,字符串里的格式要和后面的一样的
比如像你写的格式
或者像这样
'2008-4-17',后面的就要写成'yyyy-mm-dd'to_char(日期类型数据,'日期格式')
to_char的日期格式是固定的,搜索下就知道了,这些都是基本知识
只要年和月,不要日。
to_date('12/04/07','YYYYMM') 这样写不对,但是
to_date(sysdate,'YYYYMM') 这样就是对的呀还有我是想先把'04-12月-07'这个日期型 转换为字符型:200712,再一次转换为数字型的:200712能告诉我怎么实现吗?谢谢!
'04-12月-07'你这个本身就是字符串型的,不是date型的
懂嘛
两种方式
一种是
to_number(to_char(to_date('04-12月-07','dd-mon-yy'),'yyyymm'))
这种其实复杂化了
第二种
to_number('20'||substr('04-12月-07',8,2)||substr('04-12月-07',4,2))
刚才写错了,to_char(sysdate,'YYYYMM') 这样就是对的
但是,to_char('04-12月-07','YYYYMM') 这样就是错的
不明白为什么呀?
'04-12月-07'不也是一个日期类型的吗
200707一比较不就行了
一般存日期类型的数据不太会用number类型的另外,估计你以前用sql server的吧
在sqlserver里,假设vdate是个date类型的数据
vdate='2008-04-17'这样是可以的
在oracle这样不行的,肯定报错的,要这样
vdate=to_date('2008-04-17','yyyy-mm-dd')
或者
to_char(vdate,'yyyy-mm-dd')='2008-04-17'