๋ฐ์ํ
Oracle TO_CHAR -> MySQL DATE_FORMAT
Oracle์ TO_CHAR๋ MySQL์ DATE_FORMAT๊ณผ ๋์๋๋ค.
โน๏ธ Oracle TO_CHAR ์ฌ์ฉ ์
select TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') from dual
20201206153514
โน๏ธ MySQL DATE_FORMAT ์ฌ์ฉ ์
select DATE_FORMAT(now(), '%Y%m%d%H%i%s')
20201206154329
Oracle TO_CHAR
Syntax:
TO_CHAR(์ซ์/๋ ์ง, ํฌ๋งท)
- ์ซ์๋ ๋ ์ง๋ฅผ ํน์ ํฌ๋งท์ ๋ฌธ์๋ก ๋ณํํ๋ ํจ์
- ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ์ซ์/๋ ์ง๋ฅผ, ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ํฌ๋งท์ ์ง์ ํ๋ค.
TO_CHAR ๋ ์ง ๋ณํ ํฌ๋งท
ํฌ๋งท | ์ค๋ช | ์ฌ์ฉ ์ |
AM, A.M. | ์ค์ | TO_CHAR(SYSDATE, ‘AM’) → ์ค์ |
PM, P.M. | ์คํ | TO_CHAR(SYSDATE, ‘PM’) → ์คํ |
YYYY, YYY, YY, Y | ์ฐ๋ | TO_CHAR(SYSDATE, ‘YYYY’) → 2014 |
MONTH, MON | ์ | TO_CHAR(SYSDATE, ‘MONTH’) → 2์ |
MM | 01~12 ํํ์ ์ | TO_CHAR(SYSDATE, ‘MM’) → 02 |
D | ์ฃผ์ค์ ์ผ์ 1~7๋ก | TO_CHAR(SYSDATE, ‘D’) → 2 |
DAY | ์ฃผ์ค ์ผ์ ์์ผ๋ก ํ์ | TO_CHAR(SYSDATE, ‘DAY’) → ์์์ผ |
DD | ์ผ์ 01~31 ํํ๋ก ํ์ | TO_CHAR(SYSDATE, ‘DD’) → 01 |
DDD | ์ผ์ 001~365 ํํ๋ก | TO_CHAR(SYSDATE, ‘DDD’) → 041 |
DL | ํ์ฌ ์ผ์ ์์ผ๊น์ง ํ์ | TO_CHAR(SYSDATE, ‘DL’) → 2014๋ 2์ 10์ผ ์์์ผ |
HH, HH12 | ์๊ฐ์ 01~12์ ํํ๋ก | TO_CHAR(SYSDATE, ‘HH’) → 04 |
HH24 | ์๊ฐ์ 01~23์ ํํ๋ก | TO_CHAR(SYSDATE, ‘HH24’) → 16 |
MI | ๋ถ์ 00~59๋ถ ํํ๋ก | TO_CHAR(SYSDATE, ‘MI’) → 56 |
SS | ์ด๋ฅผ 01~59์ด ํํ๋ก | TO_CHAR(SYSDATE, ‘SS’) → 33 |
FF | ๋ฐ๋ฆฌ์ด(milliseconds) | TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHH24MISSFF') |
WW | ์ฃผ๋ฅผ 01~53์ฃผ ํํ๋ก | TO_CHAR(SYSDATE, ‘WW’) → 06 |
TO_CHAR ์ซ์ ๋ณํ ํฌ๋งท
ํฌ๋งท | ์ค๋ช | ์ฌ์ฉ ์ |
, (์ฝค๋ง) | ์ฝค๋ง๋ก ํ์ | TO_CHAR(123456, ‘999,999’) → 123,456 |
. (์์์ ) | ์์์ ํ์ | TO_CHAR(123456.4, ‘999,999.9’) → 123,456.4 |
9 | ํ ์๋ฆฌ ์ซ์, ์ค์ ๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ฒ ๋ช ์ | TO_CHAR(123456, ‘999,999’) → 123,456 |
PR | ์์์ผ ๋ < >๋ก ํ์ | TO_CHAR(-123, ‘999PR’) → <123> |
RN, rn | ๋ก๋ง ์ซ์๋ก ํ์ | TO_CHAR(123, ‘RN’)→CXXIII |
S | ์์์ด๋ฉด +, ์์์ด๋ฉด - ํ์ | TO_CHAR(123, ‘S999’) → +123 |
๋ฐ์ํ
MySQL DATE_FORMAT
Syntax:
DATE_FORMAT(๋ ์ง, ํฌ๋งท)
- ๋ ์ง๋ฅผ ํน์ ํฌ๋งท์ ๋ฌธ์๋ก ๋ณํํ๋ ํจ์
- ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ๋ ์ง๋ฅผ, ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ํฌ๋งท์ ์ง์ ํ๋ค.
DATE_FORMAT ํฌ๋งท ์ ๋ฆฌ
ํฌ๋งท | ์ค๋ช |
%a | ์ผ(Sun ~ Sat) |
%b | ์(Jan ~ Dec) |
%c | ์(0 ~ 12) |
%D | ์ผ(1st, 2nd, 3rd, ...) |
%d | ์ผ(01 ~ 31) |
%e | ์ผ(0 ~ 31) |
%f | Microseconds (000000 to 999999) |
%H | ์๊ฐ(00 ~ 23) |
%h | ์๊ฐ(00 ~ 12) |
%I | ์๊ฐ(00 ~ 12) |
%i | ๋ถ(00 ~ 59) |
%j | Day of the year (001 to 366) |
%k | ์๊ฐ(0 ~ 23) |
%l | ์๊ฐ(1 ~ 12) |
%M | ์(January ~ December) |
%m | ์(00 ~ 12) |
%p | AM or PM |
%r | ์๊ฐ(12์)์ hh:mm:ss AM/PM ํ์์ผ๋ก |
%S | ์ด(00 ~ 59) |
%s | ์ด(00 ~ 59) |
%T | ์๊ฐ(24์)์ hh:mm:ss ํ์์ผ๋ก |
%U | Week where Sunday is the first day of the week (00 ~ 53) |
%u | Week where Monday is the first day of the week (00 ~ 53) |
%V | Week where Sunday is the first day of the week (01 ~ 53). Used with %X |
%v | Week where Monday is the first day of the week (01 ~ 53). Used with %x |
%W | ์ผ(Sunday ~ Saturday) |
%w | Day of the week where Sunday=0 and Saturday=6 |
%X | Year for the week where Sunday is the first day of the week. Used with %V |
%x | Year for the week where Monday is the first day of the week. Used with %v |
%Y | ์ฐ๋(4์๋ฆฌ) |
%y | ์ฐ๋(2์๋ฆฌ) |
TO_CHAR & DATE_FORMAT ํฌ๋งท ๋งคํ
Oracle์ TO_CHAR ํจ์๋ฅผ MySQL์ DATE_FORMAT์ผ๋ก ๋ณ๊ฒฝํ ๋ ๋์๋๋ ํฌ๋งท์ ํ๋ก ์ ๋ฆฌํ ๊ฒ์ด๋ค.
๊ฒฐ๊ณผ | Oracle TO_CHAR | MySQL DATE_FORMAT |
์ฐ๋(4์๋ฆฌ) | YYYY | %Y |
์ฐ๋(2์๋ฆฌ) | YY | %y |
์ฐ๋(4์๋ฆฌ, YYYY์ ๋์ผ) | RRRR | %Y |
์ฐ๋(2์๋ฆฌ, YY์ ๋์ผ) | RR | %y |
์(1~12) | MM | %m |
์(Jan~Dec) | MON | %b |
์(January~December) | MONTH | %M |
์ผ(1~31) | DD | %d |
์ผ(Sun~Sat) | DY | %a |
์๊ฐ(0~23) | HH24 | %H |
์๊ฐ(1~12) | HH ๋๋ HH12 | %h |
๋ถ(0~59) | MI | %i |
์ด(0~59) | SS | %s |
โน๏ธ Oracle์์ ์์ฃผ ์ฌ์ฉ๋๋ ํฌ๋งท 'YYYYMMDDHH24MISS'์ MySQL๋ก ๋ณํํ๋ฉด '%Y%m%d%H%i%s'์ด๋ค.
โน๏ธ YYYY์ RRRR์ ๋์ผํ๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค.
โน๏ธ YY์ RR์ TO_CHAR์์๋ ๋์ผํ๊ณ TO_DATE์์๋ ์ฐจ์ด๊ฐ ์๋ค.
โน๏ธ Oracle YY์ RR ํฌ๋งท์ ์ฐจ์ด์ :
RRRR๊ณผ YYYY๋ 4์๋ฆฌ ์ฐ๋์ด๋ฏ๋ก ์ฐจ์ด๊ฐ ์๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํ๋ค.
๋จ, 2์๋ฆฌ ํ์ํ์์ธ RR๊ณผ YY๋ ์ฐ๋ ์ ๋์๋ฆฌ๊ฐ ์๋ต๋์ด ๊ทธ ์๋ฏธ๊ฐ ๋ค๋ฅด๋ค.
R์ ROUND ์ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
100๋ ๋จ์๋ก ์ฐ๋๋ฅผ ๋ฐ์ฌ๋ฆผํ ๊ฒ์ด ๊ธฐ์ค๋ ๋๊ฐ ๋๊ณ ์ ๋ ฅ๋๋ ๋ ์๋ฆฌ ์ฐ๋๊ฐ์ด 50 ๋ฏธ๋ง์ด๋ฉด ๊ธฐ์ค๋ ๋์ ์ ๋ ์๋ฆฌ๋ฅผ, 50 ์ด์์ด๋ฉด ๊ธฐ์ค๋ ๋ ์ ๋ ๋์ ์ ๋์๋ฆฌ๋ฅผ ๋ถ์ธ๋ค.
์๋ฅผ ๋ณด๋ฉด ์ดํด๊ฐ ํจ์ฌ ์ฝ๋ค.
ํ์ฌ๋ ๋๊ฐ 2020๋ ์ด๋ฉด ๋ฐ์ฌ๋ฆผํ 2000๋ ์ด ๊ธฐ์ค๋ ๋๊ฐ ๋๊ณ , ๊ธฐ์ค๋ ๋ ์ ๋ ๋๋ 1999๋ ์ด๋ค.
- TO_DATE('140101', 'rrmmdd') ==> 14๋ 50 ๋ฏธ๋ง์ด๋ฏ๋ก ==> 2014-01-01
- TO_DATE('940101', 'rrmmdd') ==> 94๋ 50 ์ด์์ด๋ฏ๋ก ==> 1994-01-01
ํ์ฌ๋ ๋๊ฐ 2054๋ ์ด๋ฉด ๋ฐ์ฌ๋ฆผํ 2100๋ ์ด ๊ธฐ์ค๋ ๋๊ฐ ๋๊ณ , ๊ธฐ์ค๋ ๋ ์ ๋ ๋๋ 2099๋ ์ด๋ค.
- TO_DATE('140101', 'rrmmdd') ==> 14๋ 50 ๋ฏธ๋ง์ด๋ฏ๋ก ==> 2114-01-01
- TO_DATE('940101', 'rrmmdd') ==> 94๋ 50 ์ด์์ด๋ฏ๋ก ==> 2094-01-01
References
- www.w3schools.com/sql/func_mysql_date_format.asp
- thebook.io/006696/part01/ch04/04/01/01/
- database.sarang.net/?criteria=oracle&subcrit=qna&inc=read&aid=40549
๋ฐ์ํ
๋๊ธ