본문 바로가기

개발(합니다)/DB

[DB] extract을 이용해 timestamp를 비교 및 일,시,분,초 추출하기

반응형

 

 

쿼리를 작성하다보면 날짜와 시간을 같이 비교해야 하는 경우가 발생합니다.

sysdate는 날짜를, systime은 시간을 표시하고 systimestamp는 날짜와 시간을 표시합니다.

 

systimestamp를 이용해 비교하고, 일, 시, 분, 초를 추출하도록 하는 방법입니다.


 

oracle, tibero

select 
	EXTRACT ( DAY FROM SYSTIMESTAMP ) * 24 * 60 * 60 AS dd ,
	EXTRACT ( HOUR FROM SYSTIMESTAMP ) * 60 * 60 AS hh ,
	EXTRACT ( MINUTE FROM SYSTIMESTAMP) * 60 AS mm,
	EXTRACT ( SECOND FROM SYSTIMESTAMP) AS ss,
	EXTRACT ( DAY FROM TO_TIMESTAMP('2021-03-25 18:43:45') - SYSTIMESTAMP ) * 24 * 60 * 60 AS d ,
	EXTRACT ( HOUR FROM TO_TIMESTAMP('2021-03-25 18:43:45') - SYSTIMESTAMP ) * 60 * 60 AS h ,
	EXTRACT ( MINUTE FROM TO_TIMESTAMP('2021-03-25 18:43:45') - SYSTIMESTAMP) * 60 AS m,
	EXTRACT ( SECOND FROM TO_TIMESTAMP('2021-03-25 18:43:45') - SYSTIMESTAMP) AS s
FROM dual;

postgresql

select extract('DAY'          from '2021-03-25 13:43:45'::timestamp);
select extract('HOUR'         from '2021-03-25 13:43:45'::timestamp);
select extract('MINUTE'       from '2021-03-25 13:43:45'::timestamp); 
select extract('SECOND'       from '2021-03-25 13:43:45'::timestamp); 


 

 

일, 시, 분, 초 이외의 인자들

인자 명칭
century 세기(21세기)
day 1~31 : 월의 일
dow 일요일(0)~토요일(6)
doy 1~366 연중일수
epoch 1970년 1월 1일 00:00:00 UTC 부터 현재까지의 초
hour 0 ~ 23 시간정보
milliseconds 1/1000 밀리초
minute 0 ~ 59 분 정보
second 0 ~ 59 초 정보
month 1 ~ 12 월 정보
quarter 1(1~3월), 2(4~6월), 3(7~9월), 4(10~12월) 분기 정보
week 주 정보 (1월 1일 : 1, 12월 31일: 52~53)
year 연도 정보.

 

반응형