重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'MM') AS 上月,
目前创新互联已为成百上千家的企业提供了网站建设、域名、网络空间、网站运营、企业网站设计、泰州网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
TO_CHAR(SYSDATE, 'MM') AS 本月,
TO_CHAR(ADD_MONTHS(SYSDATE, 1), 'MM') AS 下月
FROM DUAL
分开取,前部分取几点到几点,后一部分取月份
也就是前面一组条件取字段的时分秒,后面一组条件取字段的天或月份,再把两个条件and一下。
假设我的时间字段是varchar2类型的。
是20110101 18:00:00类型的。
那么就是
substr(字段,10,2)8 and substr(字段,10,2)18 and substr(字段,5,2)=6
当然我写的就是大概意思,具体的你要自己斟酌。
select *
from a
where a.time between
(select b.startdate
from b b
where sysdate between startdate and enddate)
and (select b.enddate
from b b
where sysdate between startdate and enddate);
1、创建测试表,
create table test_date2(v_date varchar2(20));
2、插入测试数据
insert into test_date2 values('2007-11-12 17:22:49');
insert into test_date2 values('2007-11-13 17:55:21');
insert into test_date2 values('2007-11-14 17:33:22');
3、查询表的记录,select t.*, rowid from test_date2 t;
4、编写sql,将日期字段月份加1,
select t.*, add_months(to_date(v_date,'yyyy-mm-dd hh24:mi:ss'),1) v_date2
from test_date2 t,
DECLARE
NEXT_MONTH VARCHAR2(20);
BEGIN
NEXT_MONTH := TO_CHAR(ADD_MONTHS(SYSDATE, 1),'YYYYMM');
DBMS_OUTPUT.PUT_LINE(NEXT_MONTH);
END;