欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle数据库根据时间范围查询时间范围内的年,月,日以及一天的24小时(实例)

程序员文章站 2023-11-10 23:32:52
查询时间范围内对应的年 select to_char ( add_months ( to_date ('2013',...

查询时间范围内对应的年

select
    to_char (
        add_months (
            to_date ('2013', 'yyyy'),
            (rownum - 1) * 12
        ),
        'yyyy'
    ) as years
from
    dual connect by rownum <= months_between (
        to_date ('2018', 'yyyy'),
        to_date ('2013', 'yyyy')
    ) / 12 + 1

查询时间范围内对应的月份

select
    to_char (
        add_months (
            to_date ('2017-10', 'yyyy-mm'),
            rownum - 1
        ),
        'yyyy-mm'
    ) as months
from
    dual connect by rownum <= months_between (
        to_date ('2018-04', 'yyyy-mm'),
        to_date ('2017-10', 'yyyy-mm')
    ) + 1

查询时间范围内对应的日期

select
    to_char (
        to_date ('2017-11-01', 'yyyy-mm-dd') + rownum - 1,
        'yyyy-mm-dd'
    ) as time
from
    dual connect by rownum <= trunc (
        to_date ('2017-12-01', 'yyyy-mm-dd') - to_date ('2017-11-01', 'yyyy-mm-dd')
    ) + 1

查询一天的24 个小时

select
    to_char (
        to_date ('2017-01-01', 'yyyy-mm-dd') + (rownum - 1) / 24,
        'hh24'
    ) as hour
from
    dual connect by 24 >= rownum

当然 以上的sql语句都是基于oracle的 ,对于其他的数据库并不是很合适。

查询出一定时间范围内的年 月,日, 主要是为了left join 其他数据时使用的。一般来说 ,在查询报表数据的时候比较实用,接下来会写关于sql server 数据库 根据时间范围 查询 时间范围内的 年 ,月, 日 以及 一天的24小时的sql 语句