나는야 데이터사이언티스트/SQL

[MySQL/Oracle]시간, 날짜 데이터 포맷 바꾸기, 더하기

우주먼지의하루 2020. 7. 19. 00:02
728x90

ORACLE 시간, 날짜 데이터 바꾸기

SELECT

--날짜 포맷

TO_CHAR(SYSDATE,'DAY'),-- 일요일 (요일 표시)
TO_CHAR(SYSDATE,'DY') --일 (요일을 한자리로 표시)
TO_CHAR(SYSDATE,'WW'), -- 28 (일년 기준 주를 00 ~ 53 형태로 표시)
TO_CHAR(SYSDATE,'DDD'),-- 194(1년기준 일 수)
# TO_CHAR(SYSDATE,'W') -- 2 (한달 기준 몇번째 주)
TO_CHAR(SYSDATE,'DL'),--2020년 07월 12일 일요일

--시간 포맷
TO_CHAR(SYSDATE,'AM'),--오전
TO_CHAR(SYSDATE,'PM'),--오후
TO_CHAR(SYSDATE,'HH'), -- 9 (시간을 0 ~ 12 형태로 표시)
TO_CHAR(SYSDATE,'HH24'), --21 (시간을 0 ~ 24 형태로 표시)
TO_CHAR(SYSDATE,'MI'), --36 (분을 00 ~ 59 형태로 표시)
TO_CHAR(SYSDATE,'SS') --3 (초을 01 ~ 59 형태로 표시)

--세기 포맷
TO_CHAR(SYSDATE,'CC'), --21 (세기)
TO_CHAR(SYSDATE,'BC'), --서기

FROM DUAL

MySQL 시간, 날짜 데이터 바꾸기

SELECT

--날짜 포맷
DATE_FORMAT(NOW(), '%Y %m %d'), -- 20200712
DATE_FORMAT(NOW(), '%Y-%m-%d'), -- 2020-07-12
DATE_FORMAT(NOW(), '%Y/%m/%d'), -- 2020/07/12
DATE_FORMAT(NOW(), '%Y') -- 2020
DATE_FORMAT(NOW(), '%y') -- 20
DATE_FORMAT(NOW(), '%m') -- 07
DATE_FORMAT(NOW(), '%m월') -- 07월
DATE_FORMAT(NOW(), '%j') -- 194 (1년 기준 일 수)
DATE_FORMAT(NOW(), '%U') -- 28(1년 기준 주, 시작: 일요일)
DATE_FORMAT(NOW(), '%W') -- Sunday
DATE_FORMAT(NOW(), '%w') -- 0 (주중의 일을 1~7로 표시(일요일 = 0)
DATE_FORMAT(NOW(), '%d') -- 12(두자리)
DATE_FORMAT(NOW(), '%e') -- 12(한자리)

--시간 포맷
DATE_FORMAT(NOW(), '%l') -- 6 (12시간)
DATE_FORMAT(NOW(), '%H') -- 18 (24시간)
DATE_FORMAT(NOW(), '%r') -- 06:54:43 PM (시간)
DATE_FORMAT(NOW(), '%S') -- 10 (초)


FROM DUAL

Oracle 시간, 날짜 더하기

SELECT 


--날짜 포맷
SYSDATE + (INTERVAL '1' YEAR     --1년 더하기
SYSDATE + (INTERVAL '1' MONTH)   --1개월 더하기
SYSDATE + (INTERVAL '1' DAY)     --1일 더하기

--시간 포맷
SYSDATE + (INTERVAL '1' HOUR)    --1시간 더하기 
SYSDATE + (INTERVAL '1' MINUTE)  --1분 더하기
SYSDATE + (INTERVAL '1' SECOND)  --1초 더하기
SYSDATE + (INTERVAL '02:10' HOUR TO MINUTE)   --2시간10분 더하기
SYSDATE + (INTERVAL '01:30' MINUTE TO SECOND) --1분30초 더하기


#숫자를 -로 하면 빼기

FROM DUAL

MySQL 시간, 날짜 더하기

SELECT 


--날짜 포맷
DATE_ADD('1998-01-02', INTERVAL 42 DAY) -- '1998-02-02' (42일 더하기)
DATE_ADD('1998-01-02', INTERVAL 1 MONTH) -- '1998-02-02' (1달 더하기)
DATE_ADD('1998-01-02', INTERVAL 1 YEAR) -- '1999-01-02'  (1년 더하기

--시간 포맷
DATE_ADD(NOW(), INTERVAL 1 SECOND) -- 2020-07-13 19:18:44 (1초 더하기)
DATE_ADD(NOW(), INTERVAL 1 MINUTE) -- 2020-07-13 19:18:09 (1분 더하기)
DATE_ADD(NOW(), INTERVAL 1 HOUR) -- 2020-07-13 18:21:14 (1시간 더하기)
DATE_ADD(NOW(), INTERVAL '1:20' HOUR_MINUTE) -- 2020-07-13 20:45:14 (1시간 20분 더하기)
DATE_ADD(NOW(), INTERVAL '1:20:30' HOUR_SECOND) -- 2020-07-13 20:46:30 (1시간 20분 30초 더하기)
DATE_ADD(NOW(), INTERVAL '5-2' YEAR_MONTH) -- 2025-09-13 19:26:37 (5년 2개월 더하기)


#DATE_SUB 는 빼기

FROM DUAL
반응형