首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle中关于时间的处理有关问题

2012-05-27 
oracle中关于时间的处理问题要求写一个SQL:如果给你一个时间,知道该时间的年,月(或者季度)1、现在如何根据

oracle中关于时间的处理问题
要求写一个SQL:
如果给你一个时间,知道该时间的年,月(或者季度)
1、现在如何根据第几个月来得到这个月的时间:
如:年->2011,月->2月,应该要得到:2011-02-01至2011-02-28
2、现在如何根据第几个季度来得到这个季度的时间:
如:年->2011,季度->3季度,应该要得到:2011-07-01至2011-09-30

[解决办法]
输入2……

SQL code
select to_date('2011'||lpad(2,2,'0'),'YYYYMM')+rownum-1 from dual connect by rownum<=(select to_date('2011'||lpad(2+1,2,'0'),'YYYYMM')-to_date('2011'||lpad(2,2,'0'),'YYYYMM') from dual)
[解决办法]
SQL code
--根据年月获取起始日期select max(sdate) m_date,min(sdate) n_date from (select to_char(to_date('2011'||'-01', 'YYYY-MM') + rownum - 1, 'YYYY-MM-DD') as sdate from dualconnect by rownum <= 365)where to_char(to_date(sdate,'yyyy-mm-dd'),'MM')=2         m_date           n_date-----------------------------------1    2011-02-28    2011-02-01--根据年和季度获取起始日期select max(sdate) m_date,min(sdate) n_date from (select to_char(to_date('2011'||'-01', 'YYYY-MM') + rownum - 1, 'YYYY-MM-DD') as sdate from dualconnect by rownum <= 365)where to_char(to_date(sdate,'yyyy-mm-dd'),'Q')=3         m_date           n_date-----------------------------------1    2011-09-30    2011-07-01 

热点排行