0
点赞
收藏
分享

微信扫一扫

oracle小技巧之无中生有多行,使用ntile(n)取当前日期所属的季度

Yaphets_巍 2023-02-02 阅读 121


      我们都知道在oracle取当前日期所属季度时,我们通常的做法是简单的使用to_char(sysdate,'q'),即可以得到当前日期所属的季度,,忽然想到通示使用ntile(n)应该也可以实现,动手实践一下,效果还不错! 那么如何通过ntile(n)这个函数来取得当前日期所属的季度呢?

    (1) 首先我们需要无中生有的生成12条记录,每条记录查询结果为月份的值;

    (2) 使用ntile(4)将结果集分成4个片断;

   (3) 那么当前日期落在第几个片断里,即是经几季度

    整体的取季度的sql如下:

select quarter from (select ntile(4) over(order by rownum) quarter ,to_number(to_char(to_date('2011-01-01','yyyy-mm-dd'), 'MM')) m,rownum rn
from dual
connect by level <= 12) cc
where cc.m = rn;

举报

相关推荐

0 条评论