這是遞歸寫法的問題,在8,9i升級新版本過程中經(jīng)常遇到類似問題.這個在10g,11g以后跑應(yīng)該都沒問題,在9i按以下方法寫可以實現(xiàn):
成都創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元社旗做網(wǎng)站,已為上家服務(wù),為社旗各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
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)
1、查詢確定年月的數(shù)據(jù),使用to_date或to_char都可以實現(xiàn)
SELECT?*?FROM?表名
WHERE?TO_CHAR(日期列,'YYYY-MM')?=?TO_CHAR('2013-06','YYYY-MM')???或者
SELECT?*?FROM?表名
WHERE?日期列?=?TO_Date('2013-06','YYYY-MM')
2、查詢前一個月
select?concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1),?'-MM-'),'01?00:00:00')start_time,???
concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1),?'-MM-')||to_char(LAST_DAY(sysdate),'dd?'),'23:59:59')?end_time?????from?dual
3、查詢前一天
select?to_char(sysdate-1,'yyyy-mm-dd?')||'00:00:00'?start_time,to_char(sysdate-1,'yyyy-mm-dd?')||'23:59:59'?end_time??from?dual
首先表需要有一個字段,是日期型的。
舉例:test表,字段有
name varchar2(10),
value number(6),
vdate date.
查詢2010年12月份的數(shù)據(jù)
select * from test where to_char(vdate,'yyyy-mm')='2010-12';
你好:這個查詢方式有很多;
select?*?from?tableName?where?DATEPART(mm,?theDate)
=DATEPART(mm,?GETDATE())?and?DATEPART(yy,?theDate)?
=?DATEPART(yy,?GETDATE());
-----------可以用以下方法查找
select?*?from?tableName??t?where?t.dateTime?=to_DATE('yyyy-mm','2014-12')
當(dāng)月數(shù)據(jù)
select * from table t
where t.create_time
=TRUNC(SYSDATE, 'MM')
and
t.create_time=last_day(SYSDATE) create_time為你要查詢的時間
當(dāng)年數(shù)據(jù)
select * from table t
where t.create_time
=trunc(sysdate,'YYYY')
and
t.create_time=add_months(trunc(sysdate,'YYYY'),12)-1
本周(國外周日為一個星期第一天)
where t.create_time =trunc(sysdate,'day')+1 and
t.create_time=trunc(sysdate,'day')+6 本周(國內(nèi)周一為一個星期第一天)
where t.create_time =trunc(next_day(sysdate-8,1)+1) and
t.create_time=trunc(next_day(sysdate-8,1)+7)+1
oracle獲得上個月的月份:
select to_char(add_months(trunc(sysdate),-1),'yyyymm') from dual;
oracle獲得下個月的月份:
select to_char(add_months(trunc(sysdate),1),'yyyymm') from dual;
oracle獲得上個月的第一天日期:
select data_dt ,ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD'),'MM' ),-1) ?from a_web_visit_origin;
oracle獲得上個月的第一天日期(符合當(dāng)?shù)氐娜掌诟袷剑?/p>
select data_dt ,TO_CHAR (ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD'),'MM' ),-1),'YYYY-MM-DD') ?from a_web_visit_origin;
oracle獲得上個月當(dāng)天日期:
select data_dt ,TO_CHAR (ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD') ),-1),'YYYY-MM-DD') ?from a_web_visit_origin;
select data_dt ,ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD'),'MM' ),-1) ?from a_web_visit_origin;
oracle獲得上個月的第一天日期(符合當(dāng)?shù)氐娜掌诟袷剑?/p>
select data_dt ,TO_CHAR (ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD'),'MM' ),-1),'YYYY-MM-DD') ?from a_web_visit_origin;
oracle獲得上個月當(dāng)天日期:
select data_dt ,TO_CHAR (ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD') ),-1),'YYYY-MM-DD') ?from a_web_visit_origin;
擴展資料:
日期和字符轉(zhuǎn)換函數(shù)用法(to_date,to_char):
日期轉(zhuǎn)化為字符串:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;
獲取時間的年:? select to_char(sysdate,'yyyy') as nowYear?? from dual;
獲取時間的月:?select to_char(sysdate,'mm')??? as nowMonth from dual;
獲取時間的日:select to_char(sysdate,'dd')??? as nowDay??? from dual;
獲取時間的時:select to_char(sysdate,'hh24') as nowHour?? from dual;
獲取時間的分:select to_char(sysdate,'mi')??? as nowMinute from dual;
獲取時間的秒:select to_char(sysdate,'ss')??? as nowSecond from dual;