Oracle查询数据:查询当月的数据?

Oracle查询数据:查询当月的数据:表中存的是:2013-08-05、2013-08-11、2013-09-11,如果查询当月的应该怎么查,我用 select * from t_table t where t.time<= SYSDATE 只能查询出2013-08-05,应该怎么才能查询出当月的全部数据呢?

需要看日期字段存储的是字符还是日期类型的数据,方法略有不同

如果存储的是字符型(如2015-09-01类型的数据)字段,可用以下语句:

select * from è¡¨å where to_char(sysdate,'yyyy-mm')=substr(日期字段,1,7);

如果存储的是日期型字段,可用以下语句:

select * from è¡¨å where to_char(sysdate,'yyyy-mm')=to_char(日期字段,'yyyy-mm');

所用函数说明:

to_char在语句中是将日期转为字符的函数,格式则为函数中设定的'yyyy-mm'格式。

sysdate代表当前日期时间,是日期型数据。

substr是截取函数,第一个参数为要截图的字段,第二个参数为截取的起始位,第三个参数代表截取的长度。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27
select * from t_table t       
where t.time >=TRUNC(SYSDATE, 'MM')       
and t.time<=last_day(SYSDATE)

本回答被提问者和网友采纳
第2个回答  2013-08-10
time字段是什么类型的?
如果是date型的

select * from table t where to_char(t.time,'YYYYMM')=to_char(sysdate,'YYYYMM')
如果是varchar2类型的
select * from table t where substr(t.time,1,7)=to_char(sysdate,'YYYY-MM')
第3个回答  2013-08-10
“25435331” ,老师没教过你,在列上不要有函数吗,会全表扫描的

oracle怎么查询某一个月的数据
假设查询当月的数据 select * from a where a.sdate>=trunc(sysdate,'MONTH') and a.sdate<=last_day(sysdate)

你知道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)...

oracle 如何同时查询当月数据量和指定时间段内的数据
select 姓名,一月份题量+二月份题量 一二月综合,四月份题量 from 表名 where 姓名=小A上面的字段,换上你数据库表的字段

oracle 如何同时查询当月数据量和指定时间段内的数据
当前月数量 select sum(数量) from 表名 where to_char(时间,'yyyy-mm')=to_char(sysdate,'yyyy-mm') 指定时间段内数量,比如10月1日0点0分0秒到10月3日23点59分59秒 select sum(数量) from 表名 where to_char(时间,'yyyy-mm-dd hh24:mi:ss')between '2013-10-01 00:00:00' a...

oracle 查询选择当月 每日COUNT数值 没值归0
SELECT to_char(TO_DATE('20140501','YYYYMMDD')+LEVEL-1,'yyyymmdd'),nvl(count(1),0) calendardate FROM DUAL CONNECT BY LEVEL<=(select add_months(to_date('201405', 'YYYYMM'), 1) - to_date('201405', 'YYYYMM')from dual )group by to_char(TO_DATE('20140501','YYYYMMDD')...

求助:ORACLE获取指定日期的当月的第一天
参考 select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天",to_char(last_day(sysdate), 'yyyy-mm-dd') "本月最后一天"

oracle中如何获取当月今天以后的时间
select Trunc(sysdate+1),to_date(to_char(add_months(sysdate,1),'yyyymm'),'yyyymm')from dual

ORACLE里面有完整的日期如2012-11-10 怎么查询整个11月的数据而忽略日...
首先要确定你的这个字段是字符型还是日期型的,如果是日期型的,那么可以用 to_char(字段名,'yyyymm')='201211' 就能筛选2012年11月的数据,如果是字符型,就像你列举的2012-11-10这样那么可以用:substr(字段名,1,7)='2012-11' 来筛选。

我用Oracle 查询当月过生日的人员
to_char(birthday,'MM')=to_char(sysdate,'MM')

Oracle trunc()函数的用法
Oracle的trunc()函数在数据库中起着重要作用,用于截取日期或时间的不同部分。这个函数可以根据指定的格式,将日期或时间简化到指定的精确度。以下是一些使用trunc()函数的例子:1. 当执行select trunc(sysdate) from dual; 时,它会返回当天的日期,例如2011-03-18,忽略了时间部分。2. 对于月份的处理...

相似回答