欢迎投稿

今日深度:

Oracle数据库根据时间范围查询时间范围内的年,

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


查询时间范围内对应的年

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 语句

www.htsjk.Com true http://www.htsjk.com/oracle/24073.html NewsArticle Oracle数据库根据时间范围查询时间范围内的年,月,日以及一天的24小时(实例),oracle数据库 查询时间范围内对应的年 SELECT TO_CHAR ( ADD_MONTHS ( TO_DATE (2013, yyyy), (ROWNUM - 1) * 12 ), yyyy )...
评论暂时关闭