
假设前台输入月份字符串是p_month: 2012-05
select from test1 where to_char(col,'yyyy-mm')=p_month
或者
select from test1 where trunc(col) =to_date(p_month||'01','yyyy-mm-dd)
DECLARE
V_MONTH NUMBER;
V_TEMP_DATE DATE;
V_BEGIN_DATE DATE;
BEGIN
V_MONTH := 7;--以7月为例
V_BEGIN_DATE := TO_DATE('2017-' || V_MONTH || '-01', 'yyyy-mm-dd');
V_TEMP_DATE := V_BEGIN_DATE;
LOOP
EXIT WHEN V_TEMP_DATE > LAST_DAY(V_BEGIN_DATE);
DBMS_OUTPUTPUT_LINE(TO_CHAR(V_TEMP_DATE, 'yyyy-mm-dd'));
V_TEMP_DATE := V_TEMP_DATE + 1;
END LOOP;
END;
楼上的只统计了一个月的吧
WITH t AS(SELECT ROWNUM
FROM DUAL
CONNECT BY ROWNUM <= 12)
SELECT TO_CHAR (LAST_DAY (TO_DATE ( TO_CHAR (SYSDATE, 'YYYY')
|| LPAD (TO_CHAR (ROWNUM), 2, 0),
'YYYYMM'
)
),
'YYYY-MM'
)
|| '月',
TO_CHAR (LAST_DAY (TO_DATE ( TO_CHAR (SYSDATE, 'YYYY')
|| LPAD (TO_CHAR (ROWNUM), 2, 0),
'YYYYMM'
)
),
'DD'
)
|| '天'
FROM t
直接全选复制粘贴运行
没有这样的函数,不过可以采用 MONTHS_BETWEEN 得到相差几个月,然后根据第一个月的月份,依次累加就行了。
SELECT DATE1, DATE2, CEIL(MONTHS_BETWEEN(DATE1, DATE2))
FROM (SELECT TRUNC(SYSDATE) DATE1, TRUNC(SYSDATE) - 200 DATE2 FROM DUAL)
1、创建测试表,
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;
不知道你的时间和参数time分别是什么类型的,只能暂时考虑为vchar型的。
select
to_char(时间,'yyyy-mm') as 每月时间
, sum(统计数据)
from 测试表
where substr(to_char(to_date('2011/7','YYYY/MM'),'YYYY/MM/DD'),0,4) = substr(to_char(to_timestamp('2011/7/1 18:42:43','YYYY/MM/DD hh24:mi:ss'),'YYYY/MM/DD hh24:mi:ss'),0,4)
group by to_char(时间,'yyyy-mm')
-----下面的这个假设时间是date型的,参数time是timestamp型
select
to_char(时间,'yyyy-mm') as 每月时间
, sum(统计数据)
from 测试表
where substr(to_char(时间,'yyyy-mm'),0,4) = substr(to_char(time,'YYYY/MM/DD hh24:mi:ss'),0,4)
group by to_char(时间,'yyyy-mm')
以上就是关于oracle查询语句:我要查询某一月份的所有记录,这个月份是从前台页面输入的,问这个oracle语句怎么写全部的内容,包括:oracle查询语句:我要查询某一月份的所有记录,这个月份是从前台页面输入的,问这个oracle语句怎么写、oracle中取根据所传的月份,把每个月所有天数的数据显示出来。、oracle数据库中怎么查询当前年每月的天数,按自然月统计,谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)