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

Oracle查询数据:查询当月的数据:表中存的是:2013-08-05、2013-08-11、2013-09-11,如果查询当月的应该怎么查,我用select*fromt... Oracle查询数据:查询当月的数据:表中存的是:2013-08-05、2013-08-11、2013-09-11,如果查询当月的应该怎么查,我用 select * from t_table t where t.time<= SYSDATE 只能查询出2013-08-05,应该怎么才能查询出当月的全部数据呢? 展开
 我来答
badkano
推荐于2016-04-30 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885373
团长

向TA提问 私信TA
展开全部

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

如果存储的是字符型(如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是截取函数,第一个参数为要截图的字段,第二个参数为截取的起始位,第三个参数代表截取的长度。

丶卜卜星
推荐于2018-02-27 · 超过20用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:52.8万
展开全部
select * from t_table t       
where t.time >=TRUNC(SYSDATE, 'MM')       
and t.time<=last_day(SYSDATE)
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
25435331
2013-08-10 · TA获得超过121个赞
知道小有建树答主
回答量:111
采纳率:0%
帮助的人:109万
展开全部
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')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
太平岁年丰9
2013-08-10 · TA获得超过1231个赞
知道小有建树答主
回答量:1017
采纳率:100%
帮助的人:1094万
展开全部
“25435331” ,老师没教过你,在列上不要有函数吗,会全表扫描的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式