[Postgresql] 날짜시간 함수, date_part() 사용법 정리

오늘은 Postgresql에서 특정날짜부분을 추출하는 extract() 함수를 소개해보고자 합니다. 

이미 이전 포스팅에서 extract() 함수에 대해서 사용법을 설명한 적이 있었는데요!

sas-study.tistory.com/387

[Postgresql] 날짜시간 추출, EXTRACT() 함수 사용법 정리

오늘은 Postgresql에서 특정날짜부분을 추출하는 extract() 함수를 소개해보고자 합니다. extract() 함수는 날짜/시간 데이터에서 year(년도), month(월), day(일) 과 같은 요소를 추출/검색하는 함수입니다.

sas-study.tistory.com

거의 유사한 기능을 제공해서 사실 큰 의미는 없지만 편하신 방법 혹은 표현을 사용하시면 좋을 것 같아요!

 


 

문법

해당 함수는 아래와 같이 사용할 수 있습니다.

DATE_PART(field, source)

field란 year, month, day 와 같은 날짜/시간 형태의 요소를 말하고

source란 실제 시간값인 timestamp 값을 의미합니다. '2020-01-01 10:00:00' 와 같은 값입니다.

 

간단히 문법은 살펴보았으니 이제 어떤 인자들이 필요한지 확인해보도록 하겠습니다.

 


 

필요인자 정리

field는 위에서 간단히 설명했듯이 날짜/시간 값에서 추출할 필드를 지정하는 인자입니다.

이 부분은 extract 함수의 인자와 같습니다.

여러가지 인자가 있지만 실무에 자주 사용될 법한 인자들을 정리해보았습니다. 

Field 값의미
CENTURY세기(21세기, 20세기)
DAY1~31에 해당하는 해당 월의 일
DOW일요일(0) ~ 토요일(6)까지 반환하는 값
DOY1~366 까지 해당하는 연중일수
EPOCH1970년 1월 1일 00:00:00 UTC 부터 현재까지의 초(unixtime이란 -> sas-study.tistory.com/94)
HOUR0 ~ 23 에 해당하는 시간정보
MILLISECONDS1/1000에 해당하는 밀리초
MINUTE0 ~ 59에 해당하는 분 정보
MONTH1 ~ 12에 해당하는 월 정보
QUARTER1(1~3월), 2(4~6월), 3(7~9월), 4(10~12월) 분기로 나뉘어지는 정보
SECOND0 ~ 59에 해당하는 초 정보
WEEK주 정보 (1월 1일 : 1, 12월 31일: 52~53)
YEAR연도 정보.

 


 

반환 타입

double precision (0.0)

 


 

사용 예제
select date_part('CENTURY'     , '2021-02-03 15:23:22.23242'::timestamp); -- 21
select date_part('DAY'         , '2021-02-03 15:23:22.23242'::timestamp); -- 3
select date_part('DOW'         , '2021-02-03 15:23:22.23242'::timestamp); -- 3
select date_part('DOY'         , '2021-02-03 15:23:22.23242'::timestamp); -- 34
select date_part('EPOCH'       , '2021-02-03 15:23:22.23242'::timestamp); -- 1612365802.23242
select date_part('HOUR'        , '2021-02-03 15:23:22.23242'::timestamp); -- 15
select date_part('MILLISECONDS', '2021-02-03 15:23:22.23242'::timestamp); -- 22232.42
select date_part('MINUTE'      , '2021-02-03 15:23:22.23242'::timestamp); -- 23
select date_part('MONTH'       , '2021-02-03 15:23:22.23242'::timestamp); -- 2
select date_part('QUARTER'     , '2021-02-03 15:23:22.23242'::timestamp); -- 1
select date_part('SECOND'      , '2021-02-03 15:23:22.23242'::timestamp); -- 22.23242
select date_part('WEEK'        , '2021-02-03 15:23:22.23242'::timestamp); -- 5
select date_part('YEAR'        , '2021-02-03 15:23:22.23242'::timestamp); -- 2021

 

해당 글은 www.postgresqltutorial.com/postgresql-date_part/ 사이트의 내용을 정리한 내용입니다. 추가적으로 다른 요소를 확인하고 싶으신 분들은 위 사이트를 참조해주세요.

 

 

댓글

Designed by JB FACTORY