您的位置:首页 > 数据库 > Oracle

oracle的to_date()与concat()函数使用实例

2017-07-21 14:44 543 查看
oracle的to_date()与concat()函数使用实例

出于业务需求,和数据库历史原因,业务需要在表中寻找出在个时间前12个月的某些数据,然而数据库存储的时间的分开年月存储,而且是采用varchar2进行存储的数据,所以首先要进行的两个年月字段的数据的拼接,这时候就采用oracle提供的concat()函数,
concat()传进去两个字符串,然后返回一个新的字符串,如:


concat(data_year, data_month)


然后得到一个年月拼成的新串后,这时候,就可以使用另一个函数to_date(),to_date()有许多用法,主要是两个参数,to_date(str,format);
str为字符串,format为格式,如下面所示,下面把上面得到的拼接好的字符串进行年月转换:


to_date(concat(data_year, data_month),'yyyymm')


这时候就得到一个日期了,然后根据日期相减,得到我们需要的区间,这里采用的是-号,-interval ‘12’ month,就是指定日期减去对应的月数,如需其他参数,请查询网上, 最后sql具体如下所示:

select to_date(concat(data_year, data_month),'yyyymm') as date_time from paycard_e_quota_info
where to_date(concat(data_year, data_month),'yyyymm')
between to_date(concat('2017', '05'),'yyyymm')- interval '12' month
and to_date(concat('2017', '05'),'yyyymm')- interval '1' month ;


执行该sql以后就会的到下面结果:



如有错误,请指出,毕竟是个菜鸟
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: