oracle怎么求上月末,oracle 每个月月末

oracle 查询当月份的上一个月

1、创建测试表,

10多年的山亭网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整山亭建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“山亭网站设计”,“山亭网站推广”以来,每个客户项目都认真落实执行。

create table test_date_2(id int, v_date date);

2、插入测试数据

insert into test_date_2 values(1,sysdate);

insert into test_date_2 values(2,sysdate-20);

insert into test_date_2 values(3,sysdate-30);

insert into test_date_2 values(4,sysdate-40);

commit;

3、查询表中全量数据,select t.* from test_date_2 t;

4、编写语句,查询当月份的上一个月;

select t.*, add_months(v_date,-1) v_date2 from test_date_2 t;

oracle add_months

20100228

如果想要+1月到月末 如20100228下个月的月末,单单+1月的话只是20100328;可以先20100228+1天;到20100301再+1月到20100401;再-1天回来20100331。

好像笨了点。

oracle中查询每个月1号的订单,若一号没有订单就查询上一个月的最后一笔定单,这样的语句怎么写啊。

假设有个订单表orders里有个订单时间字段o_time(它带有具体的时间:时分秒):

delcare

v_count number;

qry_mon date;

begin

qry_mon := to_date('2013-04-03',''); --要查询的月份

select count(*) into v_count from orders where o_time = trunc(qry_mon,'mm') and o_time trunc(qry_mon,'mm')+1; --查询1号00:00:00 到2 号00:00:00之间的订单

if v_count=0 then

--1号没订单,查询上月最后1笔订单

select count(*) into v_count from orders

where rownum=1

and o_time=(select max(o_time) from orders

where o_time =add_months(trunc(qry_mon,'mm'),-1) --上月1号00:00:00

and o_time=trunc(qry_mon,'mm')-1/60/60/24 --上月月末23:59:59

--上一句也可以这样 and o_time trunc(qry_mon,'mm') --查询月的1号00:00:00

);

。。。

。。。

else

--处理qry_mon这个月一号订单

end if;

end;

/

oracle sql 查询上一月月初到月末的数据

select * from 表名 where to_char(日期列,'yyyy-mm')=to_char(add_months(sysdate,-1),'yyyy-mm')

你知道oracle怎么查 本周,本月,和上月的数据吗

当月数据

select * from table t

where t.create_time

=TRUNC(SYSDATE, 'MM')

and

t.create_time=last_day(SYSDATE) create_time为你要查询的时间

当年数据

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 本周(国内周一为一个星期第一天)

where t.create_time =trunc(next_day(sysdate-8,1)+1) and

t.create_time=trunc(next_day(sysdate-8,1)+7)+1

Oracle如何获得上个月的月份

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获得上个月的第一天日期(符合当地的日期格式):

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获得上个月当天日期:

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获得上个月的第一天日期(符合当地的日期格式):

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获得上个月当天日期:

select data_dt ,TO_CHAR (ADD_MONTHS(TRUNC( to_date(data_dt, 'YYYY-MM-DD') ),-1),'YYYY-MM-DD')  from a_web_visit_origin;

扩展资料:

日期和字符转换函数用法(to_date,to_char):

日期转化为字符串: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;


本文名称:oracle怎么求上月末,oracle 每个月月末
文章URL:http://azwzsj.com/article/dsejjho.html