oracle有什么办法可以生成一个临时表,表只有1列,2个时间点之间的月份列表
oracle有什么办法可以生成一个临时表,表只有1列,2个时间点之间的月份列表?如:2008年1月1日到2009年12月31日就生成12条记录2008-01-012008...
oracle有什么办法可以生成一个临时表,表只有1列,2个时间点之间的月份列表?
如:
2008年1月1日到2009年12月31日就生成12条记录
2008-01-01
2008-02-01
…………
2008-12-01 展开
如:
2008年1月1日到2009年12月31日就生成12条记录
2008-01-01
2008-02-01
…………
2008-12-01 展开
展开全部
WITH TMP_DAY AS (
SELECT TO_CHAR(ADD_MONTHS(TO_DATE('20080101','YYYYMMDD'),ROWNUM-1),'YYYY-MM-DD') DAY_ID
FROM DUAL
CONNECT BY ROWNUM<=12
)
SELECT * FROM TMP_DAY
;
/*
--TO_DATE('20080101','YYYYMMDD')修改成初始时间点,
--本年:TRUNC(SYSDATE,'YYYY'),
--CONNECT BY ROWNUM<=12,12表示行数,2年就是24,自己改
2008-01-01
2008-02-01
2008-03-01
2008-04-01
2008-05-01
2008-06-01
2008-07-01
2008-08-01
2008-09-01
2008-10-01
2008-11-01
2008-12-01
*/
SELECT TO_CHAR(ADD_MONTHS(TO_DATE('20080101','YYYYMMDD'),ROWNUM-1),'YYYY-MM-DD') DAY_ID
FROM DUAL
CONNECT BY ROWNUM<=12
)
SELECT * FROM TMP_DAY
;
/*
--TO_DATE('20080101','YYYYMMDD')修改成初始时间点,
--本年:TRUNC(SYSDATE,'YYYY'),
--CONNECT BY ROWNUM<=12,12表示行数,2年就是24,自己改
2008-01-01
2008-02-01
2008-03-01
2008-04-01
2008-05-01
2008-06-01
2008-07-01
2008-08-01
2008-09-01
2008-10-01
2008-11-01
2008-12-01
*/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询