posted by 지긋이 2020. 8. 6. 15:00

최근 오라클만 계속 사용하다 보니, 정말 기본정보이지만 MySql을 제대로 해 본 적이 없어
자주 사용하는 명령어의 기본적인 차이점과 문법에 대해 공부겸 기록한다.

1. 현재 시간
! oracle은 sysdate
1) DATE 타입의 컬럼에 현재 날짜를 입력하고 싶을 때 
NOW() 함수를 사용하는 방법
ex)  select now() as time from dual;
: 2020-08-06 14:57:06.02) 날짜가 들어갈 컬럼(BOARD_YMD)의 데이터 타입을 TIMESTAMP DEFAULT NOW()를 주고
INSERT 시 DEFAULT값을 입력하는 방법
ex)  CREATE TABLE USER(
     USER_ID    VARCHAR(20) NOT NULL,
     USER_TYPE VARCHAR(10) NOT NULL,
     CRE_DATE  TIMESTAMP DEFAULT NOW(),
     PRIMARY KEY(USER_ID)
    );
insert into user values("rosebay","1",DEFAULT);
1-1. 현재 날짜 +- 처리(1년전/현재/1년후)
1-1-1) Oracle : select sysdate -365 as A, sysdate as B, sysdate+365 as C from dual;
19/09/08 | 20/09/07 | 21/09/07
1-1-2) Mysql
select date_add(now(),interval -365 day) as A, now() as B, date_add(now(),interval 365 day) as C from dual;
select date_add(now(),interval -12 Month) as A, now() as B, date_add(now(),interval 12 Month) C from dual;
select date_add(now(),interval -1 Year) as A, now() as B, date_add(now(),interval 1 Year) C from dual;
2019-09-08 15:06:01.0 | 2020-09-07 15:06:01.0 | 2021-09-07 15:06:01.0

2. NULL 치환
1) oracle 
ex) select nvl(user_id,'1234') as id from dual;
2) mysql
ex) select infull(user_id,'1234') as id from dual;

3. 날짜 포맷 변환
1) oracle 
ex) select to_char(sysdate,'YYYY-MM-DD HH:MI:SS') as time from dual;
  => 2020-08-06 04:00:50

2) mysql
! %Y는 4자리년도(2020)이고, %y는 2자리년도(20)이다. 즉, 대소문자에 따라 다르게 표기됨.
ex)
select date_format(now(),'%Y-%m-%d %H:%i:%s') as time from dual;
  => 2020-08-06 15:59:56

4. 문자 합치기
1) oracle
select '**'||'test'||'**' as text from dual;
  => **test**
2) mysql
select concat('**','test','**') as text from dual; 
  => **test**