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 5155 게시물 읽기
No. 5155
특정일을 date 로 어떻게 만들수 있나요?
작성자
초보
작성일
2004-01-15 12:27
조회수
1,793

가령 이사람의 나이가 다음달 10일 기준으로 몇살인지 궁금하다면

어떻게 계산하나요?  이를테면,

오늘이 1/15일인데,  생일이 1/20일이라면,

2/10 일부터 생일을 빼서, 만으로 몇살인지를 알아야 하는데요..

 

매달 이런일이 발생하기때문에, function 을 만들고 싶습니다.

어떻게하면 좋을까요?  부탁드립니다.

 

이 글에 대한 댓글이 총 4건 있습니다.
template1=# select split_part(age('1990-01-20'::date),'years',1);
 split_part
------------
 13
(1 row)

template1=# select split_part(age('2004-02-10'::date, '1990-01-20'::date),'years',1);
 split_part
------------
 14
(1 row)

 

이렇게 풀면 되는 건가요? age() 함수 잘 살펴보세요.

 

김상기(ioseph)님이 2004-01-15 13:33에 작성한 댓글입니다.

감사합니다.. age() 를 사용하면 되는군요.

그런데요, 언제든지 이 펑션을 부르면 다음달 10일이 나오도록 할려면

어떻해야 할까요?

 

get_next(date) 하면, 다음달 10일이 나오도록 말이죠..

부탁드립니다.. 꾸뻑.

 

초님이 2004-01-15 14:31에 작성한 댓글입니다.
이 댓글은 2004-01-15 14:49에 마지막으로 수정되었습니다. Edit

template1=# select split_part(age(to_date(to_char(now() + interval '1 month','YYYY-MM-10'),'YYYY-MM-DD'), '1990-01-20'::date),'years',1);
 split_part
------------
 14
(1 row)

 

핵심은 오늘로부터 다음달 10일을 날짜로 만드는 방법인데,

이놈은

to_date(to_char(now() + interval '1 month','YYYY-MM-10'),'YYYY-MM-DD')

이렇게 to_date 함수와 +, - interval 날짜 연산을 이용합니다.

 

김상기(ioseph)님이 2004-01-15 14:53에 작성한 댓글입니다.

정말 감사합니다.

너무 잘 작동합니다. 

감동적인 답변에 감사드리면서..

 

초보님이 2004-01-16 07:03에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
5158echo $CLASSPATH 내용입니다. [1]
영미
2004-01-16
1415
5157제대로 설정했다고 생각하는데요 에러가 나요. [1]
영미
2004-01-16
1265
5156JDBC드라이버 설정은 어떻게 하나요? [1]
영미
2004-01-16
1696
5155특정일을 date 로 어떻게 만들수 있나요? [4]
초보
2004-01-15
1793
5154리눅스에서 postgresql실행하면 메모리, 세마포어 오류 [2]
강승진
2004-01-14
1854
5153postgresql 한글 지원에 관하여 [4]
김동훈
2004-01-12
2042
5152[질문] 나이 계산하는 pl-pg-sql 좀 갈켜주세요. [1]
PGsql조아
2004-01-12
1842
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다