sql获取规定递增数字/递增年份/递增日期

1,sql获取一串规定的递增数字 


SELECT 1 + ROWNUM - 1  as n
FROM DUAL
CONNECT BY ROWNUM <=trunc(8-1) + 1 

结果:

 2,sql获取一串递增年

SELECT 2015 + ROWNUM - 1  as nFROM DUAL CONNECT BY ROWNUM <=trunc(2025-2015) + 1 

 结果:

 3,sql获取一串获取月 

SELECT distinct  TO_CHAR(TO_DATE('202001', 'yyyyMM') + ROWNUM - 1, 'yyyyMM') as yyyyMM  FROM DUALCONNECT BY ROWNUM <=trunc(TO_DATE('202306', 'yyyyMM')-TO_DATE('202201', 'yyyyMM')) + 1  

结果:

# 可以使用DATEDIFF函数和DATEADD函数来获取两个时间之间的月份。

(oracle数据库没有DATEDIFF函数和DATEADD函)

具体示例如下:

    假设有两个时间:@start_time和@end_time。

   如果要获取这两个时间之间的月份,可以使用以下SQL语句:

    SELECT DATEDIFF(MONTH, @start_time, @end_time) AS diff_month  FROM DUAL

    如果要获取从开始时间往后n个月的日期,可以使用以下SQL语句:

    SELECT DATEADD(MONTH, n, @start_time) AS date_after_n_month  FROM DUAL

    其中n为往后的月份数。

 4,sql获取一串递增日期

SELECT TO_CHAR(TO_DATE('2020-03-25', 'yyyy-MM-dd') + ROWNUM - 1, 'yyyy-MM-dd') as DATELIST FROM DUALCONNECT BY ROWNUM <=trunc(TO_DATE('2020-04-05', 'yyyy-MM-dd')-TO_DATE('2020-03-25', 'yyyy-MM-dd')) + 1 

结果:

   也可以显示星期

SELECTTO_CHAR(TO_DATE('2020-01-01', 'yyyy-MM-dd') + ROWNUM - 1, 'yyyy-MM-dd') as rq,to_char(to_date('2020-01-01', 'yyyy-MM-dd HH24:MI:SS')+ ROWNUM - 1,'day','NLS_DATE_LANGUAGE = ''SIMPLIFIED CHINESE''') AS XQ FROM DUALCONNECT BY ROWNUM <=trunc(TO_DATE('2020-01-10', 'yyyy-MM-dd')-TO_DATE('2020-01-01', 'yyyy-MM-dd')) + 1  

结果:

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部