반응형
쿼리를 작성하다보면 날짜와 시간을 같이 비교해야 하는 경우가 발생합니다.
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 | 연도 정보. |
반응형
'개발(합니다) > DB' 카테고리의 다른 글
[liquibase] DB에서 리퀴베이스 리버스(revers) 문법(추출)만들기(generateChangeLog ) (0) | 2021.05.13 |
---|---|
[DB] tibero에서 job 사용하는 방법 (0) | 2021.04.01 |
[DB] 테이블 스페이스, 테이블, 컬럼 정보 조회하기(pg, mysql, oracle, tibero) (0) | 2021.02.26 |
[postgresql] DB 데이터 내보내기 (0) | 2019.02.13 |
[oracle] 계정 만들기 및 sql developer 새 접속 하기 (0) | 2019.02.12 |