[Oracle] 날짜 시간 함수, Datetime Function

수경·2023년 9월 3일
0
post-thumbnail

날짜 시간 함수, Datetime Function

sysdate

  • 현재 시스템의 시각을 반환
  • (자바)Calendar.getInstance()
  • date sysdate
SELECT sysdate FROM dual;

날짜 연산

  1. 시각 - 시각 = 시간
  2. 시각 + 시간 = 시각
  3. 시각 - 시간 = 시각

1. 시각 - 시각 = 시간(일)

SELECT
	name, ibsadate,
	round(sysdate - ibsadate) AS 근무일수,	--9088.6
	round((sysdate-ibsadate)/365) AS 근무년수, 	--사용금지!
	round((sysdate-ibsadate)*24) AS 근무시수,
	round((sysdate-ibsadate)*24*60) AS 근무분수,
	round((sysdate-ibsadate)*24*60*60) AS 근무초수
FROM tblinsa;

일은 시,분,초로 환산 가능하지만 월, 년으로 환산 불가능

months_between()

  • 두 날짜 사이의 월 수를 계산
  • months_between(end_date, start_date)
  • 시각 - 시각 = 시간(월)
SELECT
	name,
	round(sysdate - ibsadate) AS 근무일수,
	round(months_between(sysdate, ibsadate)) AS 근무월수,
	round(months_between(sysdate, ibsadate) / 12) AS 근무년수
FROM tblinsa;

2. 시각 +(-) 시간 = 시각

SELECT
	sysdate,
	sysdate + 100 AS a100일후,
	sysdate - 100 AS a100일전,
	sysdate + (3/24) AS "3시간후",
	sysdate - (5/24) AS "5시간전",
	sysdate + (30/60/24) AS "30분 뒤"
FROM dual;

일,시,분,초 환산 가능하지만 월, 일 불가능

add_months()

  • 주어진 날짜에 지정된 월 수를 더하거나 뺀다.
  • add_months(date, months_to_add)
  • 시각 + 시간(월) = 시각
SELECT
	sysdate,
	add_months(sysdate, 3) AS 삼개월뒤,
	add_months(sysdate, -2) AS 두달전,
	add_months(sysdate, 5*12) AS 오년뒤
FROM dual;

profile
웹백엔드개발자를 꿈꾸는

0개의 댓글