加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle取出某个月的所有数据

发布时间:2020-12-12 13:56:56 所属栏目:百科 来源:网络整理
导读:要制作报表打印某年某月的数据,例如前台传入‘2013-06’这样的字符串,我怎么才能从oracle数据库中取出2013年06月的所有记录呢?求SQL,求大神指点! 1、查询确定年月的数据,使用to_date或to_char都可以实现 SELECT * FROM 表名 WHERE TO_CHAR(日期列, 'YYY
SELECT*FROM表名WHERETO_CHAR(日期列,'YYYY-MM')=TO_CHAR('2013-06','YYYY-MM')或者SELECT*FROM表名WHERE日期列=TO_Date('2013-06','YYYY-MM')

2、查询前一个月

selectconcat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1),'-MM-'),'0100:00:00')start_time,concat(to_char(sysdate,'-MM-')||to_char(LAST_DAY(sysdate),'dd'),'23:59:59')end_timefromdual

3、查询前一天

selectto_char(sysdate-1,'yyyy-mm-dd')||'00:00:00'start_time,to_char(sysdate-1,'yyyy-mm-dd')||'23:59:59'end_timefromdual



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

Oracle查询数据:查询当月的数据:表中存的是:2013-08-05、2013-08-11、2013-09-11,如果查询当月的应该怎么查,我用 select * from t_table t where t.time<= SYSDATE 只能查询出2013-08-05,应该怎么才能查询出当月的全部数据呢?我有更好的答案推荐于2016-04-30 07:56:59最佳答案

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

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

select*from表名whereto_char(sysdate,'yyyy-mm')=substr(日期字段,1,7);

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

select*from表名whereto_char(sysdate,'yyyy-mm')=to_char(日期字段,'yyyy-mm');

所用函数说明:

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

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

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

或者: ================================================================
SELECT*FROMTABLEWHERETO_CHAR(INSERT_DATE,'YYYY-MM')=TO_CHAR('2013-06','YYYY-MM')
select
*fromt_tabletwheret.time>=TRUNC(SYSDATE,'MM')andt.time<=last_day(SYSDATE)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

要制作报表打印某年某月的数据,例如前台传入‘2013-06’这样的字符串,我怎么才能从oracle数据库中取出2013年06月的所有记录呢?求SQL,求大神指点!


1、查询确定年月的数据,使用to_date或to_char都可以实现

    推荐文章
      热点阅读