oracle列出指定时间范围内的所有月份?
发布网友
发布时间:2022-04-26 09:50
我来回答
共5个回答
热心网友
时间:2022-04-08 12:58
这是递归写法的问题,在8,9i升级新版本过程中经常遇到类似问题.这个在10g,11g以后跑应该都没问题,在9i按以下方法写可以实现:
SELECT TO_CHAR (ADD_MONTHS (TO_DATE ('2011-03', 'yyyy-mm'), ROWNUM - 1),'YYYY-MM') AS yearmonth FROM all_objects
WHERE ROWNUM <=(SELECT MONTHS_BETWEEN (TO_DATE ('2012-07', 'yyyy-mm'),TO_DATE ('2011-03', 'yyyy-mm')) FROM DUAL)
热心网友
时间:2022-04-08 14:16
指定年份到当前年的范围:SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2013', 'yyyy'), (ROWNUM - 1) * 12), 'yyyy') as nd
FROM DUAL
CONNECT BY ROWNUM <=
months_between(to_date(to_char(sysdate,'yyyy'),'yyyy') ,
to_date('2013', 'yyyy')) / 12 + 1
热心网友
时间:2022-04-08 15:50
这个问题是由于你数据库版本过低产生的。
这个错误出现在 CONNECT BY 这个层次查询子句,一般CONNECT BY用于树状或者层次结果集的查询。
推荐,最好是更换数据库,因为现在ORACLE官网你也下载不到9i和10g了。而且版本低有些新加的函数都用不了。
如果非要在9I上修改这句话,很麻烦!!
热心网友
时间:2022-04-08 17:42
SELECT to_number(TO_CHAR(add_months(trunc(sysdate,'yy'), ROWNUM - 1),
'MM')) as month
FROM DUAL
CONNECT BY ROWNUM <= (select months_between(trunc(sysdate,'mm'),trunc(sysdate,'yy')) + 1
from al);
这是我借鉴了一楼的写的,查询截至到当前日期的当年的所有月份
热心网友
时间:2022-04-08 19:50
select to_date(item_date,'yyyy-mm') from (
select to_number(months_between(to_date('2012-07','yyyy-mm'),to_date('2011-03','yyyy-mm'))) item_date from al ) 不行?追问谢谢你的回答,不过明显不行
oracle列出指定时间范围内的所有月份?
SELECT TO_CHAR (ADD_MONTHS (TO_DATE ('2011-03', 'yyyy-mm'), ROWNUM - 1),'YYYY-MM') AS yearmonth FROM all_objects WHERE ROWNUM <=(SELECT MONTHS_BETWEEN (TO_DATE ('2012-07', 'yyyy-mm'),TO_DATE ('2011-03', 'yyyy-mm')) FROM DUAL)...
Oracle如何根据一个时间段内的所有日期
with t as (select rownum - 1 rn from dual connect by rownum <= to_date('2018-05-31', 'yyyy-mm-dd') - to_date('2018-05-01', 'yyyy-mm-dd') + 1)select to_date('2018-05-01', 'yyyy-mm-dd') + rn from t结果:所有带日期的地方替换了。
oracle sql语句中如何取得某一时间段内的月份
to_char(时间,'mm')
Oracle数据库查询某段时间内时间段的数据
select * from 表名 where to_date(ip_date,'yyyy.mm.dd') between to_date('20190204','yyyymmdd') and to_date('20190209','yyyymmdd') and substr(ip_time,12,8) between '00:00:00' and '08:00:00'
oracle根据选择的时间范围查询相应的数据
select * from TableA where to_char(startDate,'YYYY-MM-DD')>='2011-09-01' and to_char(endDate,'YYYY-MM-DD')<='2011-09-012' ;另外如果是程序里面用可以做绑定参数,免得每次都解析SQL语句,可以减少查询时间
在oracle中如何实现查询某一时间段的数据?
select * from tab where dtcol between to_date('2012-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2012-05-31 00:00:00','yyyy-mm-dd hh24:mi:ss')
oracle 取随机月份数据.例如:输入时间段就取3-5月的数..或者6-12月...
然后通过这个1,2,3,4,5。。。去找你的最大和最小值。找出后(比如你写的最小是1,最大是5,那么在user_tab_columns中就找到1,2,3,4,5.)然后能找到对应的字段名(cfjanuary,cffebruary,cfmarch,,,cfmay).这时出来是一列,你可以通过循环将他们写到一个新的语句中,或者通过wmsys.wm_con...
oracle数据库中,如何查询指定时间段内的记录
使用sql语句查询:select * from table1 t where t.Time between to_date('2007-03-03 18:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2007-09-04 18:00:00','yyyy-mm-dd hh24:mi:ss')
oracle数据库怎么查询一个月内固定时间段的数据,比如5月1号到5月31号...
--有什么问题可以随时来找我 select * from 表名 where 日期字段>=to_date('2013-05-01 00:00:00','yyyy-mm-dd hh:mi:ss')and 日期字段<=to_date('2013-05-31 06:00:00','yyyy-mm-dd hh:mi:ss')
oracle SQL语句中怎么查询一个月内固定时间段的数据,比如9月1号到10月...
使用Oracle 函数extract(fmt from d)获取日期中的特定部分:select count(*) from table where SQL> select * from table where createdate between to_date('2010-9-1','yyyy-MM-dd') and to_date('2010-10-1','yyyy-MM-dd')and EXTRACT(hour from createdate) between '8:00' and '9...