database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 6619 게시물 읽기
No. 6619
날짜 생성 함수
작성자
강성일(elise75)
작성일
2006-04-13 17:04
조회수
3,187

쓸일이 있어서 만들어 봤습니다.

상기님의 재귀함수 강좌(http://database.sarang.net/?inc=read&aid=4585&criteria=pgsql&subcrit=tutorials&id=&limit=20&keyword=&page=2)
를 보고 수정해서 만들어 보았습니다.
필요하신분들 계실거 같아서요.

 

CREATE OR REPLACE FUNCTION "public"."cdate" (date, date,interval) RETURNS SETOF "pg_catalog"."record" AS
$body$
DECLARE
node1 record;
subnode record;
BEGIN

FOR node1 IN SELECT to_date($1 + $3,'YYYY-MM-DD') as cdate where to_date($1 + $3,'YYYY-MM-DD')<= $2 LOOP
RETURN NEXT node1;
FOR subnode IN SELECT * FROM cdate(node1.cdate, $2,$3) as t(cdate date) LOOP
RETURN NEXT subnode;
END LOOP;
END LOOP;

RETURN;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;



사용법
SELECT * FROM cdate('2005-12-31'::date,'2006-01-31',interval'1 day') as t(cdate date)

cdate
------------
2006-01-01

2006-01-02
2006-01-03
.

.

.
2006-01-29
2006-01-30
2006-01-31

 

SELECT to_char(cdate,'YYYY-MM') FROM cdate('2005-12-31'::date,'2006-12-31',interval' 1 month ') as t(cdate date);
to_char
---------
2006-01
2006-02
2006-03
2006-04
2006-05
2006-06
2006-07
2006-08
2006-09
2006-10
2006-11
2006-12

고운하루 되십시요

이 글에 대한 댓글이 총 2건 있습니다.

요건 어떨까요?

 

select ('2005-12-31'::date+((no||' day')::interval))::date from generate_series(0,31) as a (no);

 

select ('2005-12-31'::date+((no||' month')::interval))::date from generate_series(0, 3) as a (no);

신기배(소타)님이 2006-04-13 21:56에 작성한 댓글입니다.

진작점 알려주시지 -_-;; 헛고생햇넹..
덕분에 시스템 함수들 공부점 하게 생겼습니다 ^^;;

역시 사람은 배워야해~

강성일(elise75)님이 2006-04-14 14:32에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6626인덱스에 관해 [4]
조진우
2006-04-17
2566
6623row 번호를 찾으려면... [3]
아즈샤라
2006-04-14
2779
6622인코딩 문제점 [1]
김진홍
2006-04-14
2715
6619날짜 생성 함수 [2]
강성일
2006-04-13
3187
6618이에러를 어떻게 해야 하죠 [2]
곽상옥
2006-04-13
2228
6615임의의 테이블 백업하는 방법 좀 구해봅니다. [2]
김진홍
2006-04-12
2542
6614갑자기 db가 접속이 안됩니다. [3]
곽상옥
2006-04-11
2607
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.015초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다