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 n
FROM DUAL
CONNECT BY ROWNUM <=trunc(2025-2015) + 1
结果:
3,sql获取一串获取月
SELECT
distinct TO_CHAR(TO_DATE('202001', 'yyyyMM') + ROWNUM - 1, 'yyyyMM') as yyyyMM
FROM DUAL
CONNECT 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 DUAL
CONNECT BY ROWNUM <=trunc(TO_DATE('2020-04-05', 'yyyy-MM-dd')-TO_DATE('2020-03-25', 'yyyy-MM-dd')) + 1
结果:
也可以显示星期
SELECT
TO_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 DUAL
CONNECT BY ROWNUM <=trunc(TO_DATE('2020-01-10', 'yyyy-MM-dd')-TO_DATE('2020-01-01', 'yyyy-MM-dd')) + 1
结果:
还没有评论,来说两句吧...