oracle获取当年所有的周、月、季度

oracle获取当年所有的周、月、季度

1、oracle获取当年所有的周

SELECT
	TRUNC( trunc( SYSDATE, 'yyyy' ) + ( ROWNUM - 1 ) * 7, 'D' ) + 1 AS KSSJ,
	trunc( ( TRUNC( trunc( SYSDATE, 'yyyy' ) + ( ROWNUM - 1 ) * 7, 'D' ) + 7 ) + 1 ) - 1 / ( 24 * 3600 ) AS JSSJ,
	TO_CHAR( trunc( SYSDATE, 'yyyy' ) + ( ROWNUM - 1 ) * 7, 'iw' ) AS XH,
	TO_CHAR( TRUNC( trunc( SYSDATE, 'yyyy' ) + ( ROWNUM - 1 ) * 7, 'D' ) + 1, 'YYYY' ) AS NF,
	(
		'W' || TO_CHAR( TRUNC( trunc( SYSDATE, 'yyyy' ) + ( ROWNUM - 1 ) * 7, 'D' ) + 1, 'YYYY' ) || '-' || TO_CHAR( trunc( SYSDATE, 'yyyy' ) + ( ROWNUM - 1 ) * 7, 'iw' ) 
	) AS BSM,
	(
		TO_CHAR( TRUNC( trunc( SYSDATE, 'yyyy' ) + ( ROWNUM - 1 ) * 7, 'D' ) + 1, 'YYYY' ) || '年第' || TO_NUMBER( TO_CHAR( trunc( SYSDATE, 'yyyy' ) + ( ROWNUM - 1 ) * 7, 'iw' ) ) || '周' 
	) AS QJMS 
FROM
	DUAL CONNECT BY ROWNUM <= TRUNC( add_months( trunc( SYSDATE, 'yyyy' ), 12 ) - trunc( SYSDATE, 'yyyy' ) ) / 7 + 1

2、oracle获取当年所有的月

SELECT
	trunc(to_DATE(TO_CHAR(ADD_MONTHS(trunc(sysdate, 'yyyy'), ROWNUM - 1), 'yyyyMM'), 'YYYYMM'), 'mm') AS KSSJ,
	trunc(last_day(to_date(TO_CHAR(ADD_MONTHS(trunc(sysdate, 'yyyy'), ROWNUM - 1), 'yyyyMM'),'yyyy-mm')+ (ROWNUM - 1)) +1)-1/(24*3600)  AS JSSJ,
	TO_CHAR(ADD_MONTHS(trunc(sysdate, 'yyyy'), ROWNUM - 1), 'MM') AS XH,
	TO_CHAR(ADD_MONTHS(trunc(sysdate, 'yyyy'), ROWNUM - 1), 'yyyy') AS NF,
	(
		'M' || TO_CHAR(ADD_MONTHS(trunc(sysdate, 'yyyy'), ROWNUM - 1), 'yyyy')  || '-' || TO_CHAR(ADD_MONTHS(trunc(sysdate, 'yyyy'), ROWNUM - 1), 'MM')
	) AS BSM,
	(
		TO_CHAR(ADD_MONTHS(trunc(sysdate, 'yyyy'), ROWNUM - 1), 'yyyy')  || '年' || TO_NUMBER(TO_CHAR(ADD_MONTHS(trunc(sysdate, 'yyyy'), ROWNUM - 1), 'MM') ) || '月' 
	) AS QJMS 
FROM DUAL
CONNECT BY ROWNUM <=months_between(add_months(trunc(sysdate, 'yyyy'), 12), trunc(sysdate, 'yyyy'))

3、获取当年年份

SELECT
	trunc(sysdate, 'yyyy') AS KSSJ,
	add_months(trunc(sysdate, 'yyyy'), 12) - 1/(24*3600)  AS JSSJ,
	TO_CHAR(sysdate, 'yyyy') AS XH,
	TO_CHAR(sysdate, 'yyyy') AS NF,
	(
		'Y' || TO_CHAR(sysdate, 'yyyy')
	) AS BSM,
	(TO_CHAR(sysdate, 'yyyy') || '年' ) AS QJMS 
FROM DUAL

3、oracle获取当年所有的季度

SELECT
	trunc(to_DATE(TO_CHAR(ADD_MONTHS(trunc(sysdate, 'yyyy'), (ROWNUM - 1)*3), 'yyyyMM'), 'YYYYMM'), 'mm') AS KSSJ,
	trunc(to_DATE(TO_CHAR(ADD_MONTHS(trunc(sysdate, 'yyyy'), (ROWNUM - 1)*3+3), 'yyyyMM'), 'YYYYMM'), 'mm')-1/(24*3600)  AS JSSJ,
	TO_CHAR(ADD_MONTHS(TO_DATE('2022-01', 'yyyy-MM'), (ROWNUM - 1)*3), 'q')  AS XH,
	TO_CHAR(ADD_MONTHS(TO_DATE('2022-01', 'yyyy-MM'), (ROWNUM - 1)*3), 'yyyy') AS NF,
	(
		'Q' || TO_CHAR(ADD_MONTHS(TO_DATE('2022-01', 'yyyy-MM'), (ROWNUM - 1)*3), 'yyyy')   || '-' || TO_CHAR(ADD_MONTHS(sysdate, (ROWNUM - 1)*3), 'q')
	) AS QJBSM,
	(
		TO_CHAR(ADD_MONTHS(TO_DATE('2022-01', 'yyyy-MM'), (ROWNUM - 1)*3), 'yyyy') || '年第' || 
		TO_CHAR(ADD_MONTHS(TO_DATE('2022-01', 'yyyy-MM'), (ROWNUM - 1)*3), 'q')  || '季度' 
	) AS QJMS 
FROM DUAL
CONNECT BY ROWNUM <=months_between(add_months(trunc(sysdate, 'yyyy'), 12), trunc(sysdate, 'yyyy'))/3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值