您的位置:程序门 -> oracle -> 基础和管理



extract执行出错,大家帮我看看


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


extract执行出错,大家帮我看看
发表于:2008-01-17 09:31:42 楼主
select   extract(   day         from   dt2-dt1   )   day,
              extract(   hour       from   dt2-dt1   )   hour,
              extract(   minute   from   dt2-dt1   )   minute,
              extract(   second   from   dt2-dt1   )   second
    from   (select   to_timestamp('29-feb-2000   01:02:03.122000',
                                                        'dd-mon-yyyy   hh24:mi:ss.ff')   dt1,
                              to_timestamp('15-mar-2001   11:22:33.000000',
                                                        'dd-mon-yyyy   hh24:mi:ss.ff')   dt2
                    from   dual   )
/

结果:

              day               hour           minute           second
----------   ----------   ----------   ----------
              380                   10                   20           29.878


select   extract(   year       from   dt2-dt1   )   as   year,
              extract(   month     from   dt2-dt1   )   as   month,
              extract(   day         from   dt2-dt1   )   day,
              extract(   hour       from   dt2-dt1   )   hour,
              extract(   minute   from   dt2-dt1   )   minute,
              extract(   second   from   dt2-dt1   )   second
    from   (select   to_timestamp('29-feb-2000   01:02:03.122000',
                                                        'dd-mon-yyyy   hh24:mi:ss.ff')   dt1,
                              to_timestamp('15-mar-2001   11:22:33.000000',
                                                        'dd-mon-yyyy   hh24:mi:ss.ff')   dt2
                    from   dual   )
/

error   at   line   2:
ora-30076:   invalid   extract   field   for   extract   source
但加了extract(   year       from   dt2-dt1   )   as   year,和extract(   month     from   dt2-dt1   )   as   month,
执行出错
发表于:2008-01-17 09:53:291楼 得分:0
select   extract(year   from   date1)   from   dual
select   extract(hour   from   date2)   from   dual
这里的date1和date2格式不一样才对。
发表于:2008-01-17 09:57:592楼 得分:0
to   gebz456
date1和date2格式不一样才对 
这句话根据你的意思是这里要两个不同日期吗
为什么这样呢
发表于:2008-01-17 10:02:283楼 得分:0
怎么看怎么就奇怪你这个。
select       extract(       year               from       dt2-dt1       )       as       year,  
extract(       month           from       dt2-dt1       )       as       month
要extract   year和month。dt2-dt1一定要是这样的东西yyyymmdd才可以吧,不然怎么成呢
发表于:2008-01-17 10:07:094楼 得分:0
你这样测试就知道为什么了
select   extract(year   from   sysdate)   from   dual
select   extract(hour   from   sysdate)   from   dual   这个是错的
正确的就是
select   extract(hour   from   timestamp   '2008-01-17:xx:xx:xx')   from   dual

发表于:2008-01-17 10:11:215楼 得分:0
我这dt1和dt2都是timestamp类型啊
elect       to_timestamp('29-feb-2000       01:02:03.122000',                                                                                                                 'dd-mon-yyyy       hh24:mi:ss.ff')       dt1,to_timestamp('15-mar-2001       11:22:33.000000',
'dd-mon-yyyy       hh24:mi:ss.ff')       dt2     from       dual

两个timestamp相减是一个interval啊
发表于:2008-01-18 09:41:366楼 得分:0
自己顶起
发表于:2008-01-21 09:56:397楼 得分:0
再顶起
发表于:2008-01-22 10:12:438楼 得分:0
没人来应一声啊


快速检索

最新资讯
热门点击