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

向右看齐 2023-10-12 16:41 97阅读 0赞

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

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

结果:

2b0646f41f3d4904a8e04f62ff8533a5.png

2,sql获取一串递增年

  1. SELECT
  2. 2015 + ROWNUM - 1 as n
  3. FROM DUAL
  4. CONNECT BY ROWNUM <=trunc(2025-2015) + 1

结果:

03dee00dbdbd4a4fb3701ffc20f9cb0d.png

3,sql获取一串获取月

  1. SELECT
  2. distinct TO_CHAR(TO_DATE('202001', 'yyyyMM') + ROWNUM - 1, 'yyyyMM') as yyyyMM
  3. FROM DUAL
  4. CONNECT BY ROWNUM <=trunc(TO_DATE('202306', 'yyyyMM')-TO_DATE('202201', 'yyyyMM')) + 1

结果:

bddd31f043f84d8286d5512d333a6943.png

# 可以使用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获取一串递增日期

  1. SELECT
  2. TO_CHAR(TO_DATE('2020-03-25', 'yyyy-MM-dd') + ROWNUM - 1, 'yyyy-MM-dd') as DATELIST
  3. FROM DUAL
  4. CONNECT BY ROWNUM <=trunc(TO_DATE('2020-04-05', 'yyyy-MM-dd')-TO_DATE('2020-03-25', 'yyyy-MM-dd')) + 1

结果:

4c18a4728177403cb1d757255e853b8a.png

也可以显示星期

  1. SELECT
  2. TO_CHAR(TO_DATE('2020-01-01', 'yyyy-MM-dd') + ROWNUM - 1, 'yyyy-MM-dd') as rq,
  3. to_char(to_date('2020-01-01', 'yyyy-MM-dd HH24:MI:SS')+ ROWNUM - 1,'day','NLS_DATE_LANGUAGE = ''SIMPLIFIED CHINESE''') AS XQ
  4. FROM DUAL
  5. CONNECT BY ROWNUM <=trunc(TO_DATE('2020-01-10', 'yyyy-MM-dd')-TO_DATE('2020-01-01', 'yyyy-MM-dd')) + 1

结果:

721dab1c52a5455b8d01e46d53e02c78.png

发表评论

表情:
评论列表 (有 0 条评论,97人围观)

还没有评论,来说两句吧...

相关阅读

    相关 738. 单调递增数字

    给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。 (当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时