함수 내용 DATEDIFF(날짜1, 날짜2) 날짜1 - 날짜2 차이를 일수로 반환 TIMESTAMPDIFF(단위, 날짜1, 날짜2) 날짜1 - 날짜2 차이를 선택한 단위로 반환 SECOND 초 MINUTE 분 HOUR 시 DAY 일 WEEK 주 MONTH 월 QUARTER 분기 YEAR 년 DATEDIFF 쿼리 : SELECT DATEDIFF('2021-01-16', '2017-03-01'); 결과 : 1417 TIMESTAMPDIFF 쿼리 : SELECT TIMESTAMPDIFF(QUARTER, '2021-09-22', '2020-03-28'); 결과 : -5
mysql에서 제공하는 함수 암호화 & 인코딩 #암호화 AES_ENCRYPT({암호화 할 값},{암호화 키}) #인코딩 TO_BASE64(AES_ENCRYPT({암호화 할 값},{암호화 키})) #BASE64로 인코딩 HEX(AES_ENCRYPT({암호화 할 값},{암호화 키})) #hexadecimal string으로 인코딩 #EXAMPLE UPDATE MEMBER SET MEM_NAME_ENC = TO_BASE64(AES_ENCRYPT(MEM_NAME,'testkey123')); 복호화 & 디코딩 #디코딩 FROM_BASE64({암호화된 값}) HEX({암호화된 값}) #복호화 AES_DECRYPT(FROM_BASE64({암호화된 값}), {암호화 키}) # 암호화 할 때 사용했던 키 사용 #EXAM..
MySQL에서 두 날짜간의 차이를 가져올 때 사용하는 함수가 두 가지가 있습니다. 단순히 일 차이를 가져올 때 사용하는 것이 DATEDIFF 함수입니다. 이 외에도 차이를 연, 분기, 월, 주, 일, 시, 분, 초를 지정하여 가져올 때 사용하는 함수가 TIMESTAMPDIFF 함수입니다. ▶사용법 DATEDIFF DATEDIFF(날짜1, 날짜2); * 간단히 말하자면 날짜1 - 날짜2 동작입니다. TIMESTAMPDIFF TIMESTAMPDIFF(단위, 날짜1, 날짜2); 단위 SECOND : 초 MINUTE : 분 HOUR : 시 DAY : 일 WEEK : 주 MONTH : 월 QUARTER : 분기 YEAR : 연 ▶예제 쿼리 (Example Query) DATEDIFF 예제1 쿼리 SELECT TI..
1. 공백치환 함수 ( NVL -> IFNULL ) Oracle : SELECT NVL('컬럼명', '') FROM DUAL; MySql : SELECT IFNULL('컬럼명', '') FROM DUAL; 2. 현재 날짜시간 Oracle : SYSDATE Mysql : NOW() 3. 날짜포멧 Oracle : TO_CHAR(sysdate,'MMDDYYYYHH24MISS') Mysql : DATE_FORMAT(now(),'%Y%m%d%H%i%s') -> 여기서 대문자Y는 4자리 년도, 소문자 y는 2자리 년도 4. 날짜 포멧 : 요일 Oracle : 요일이 1~7로 인식함 -> TO_CHAR(SYSDATE - 1, 'D') Mysql : 요일이 0~6으로 인식 -> DATE_FORMAT(DATE_SUB(N..
순위 함수 Oracle에서 제공하는 순위 함수는 아래와 같습니다. 해당 함수에 대한 설명보다는 실습을 통해 이해하는 것이 더 쉬울 수 있습니다. RANK : 동일한 값이면 중복 순위를 부여하고, 다음 순위는 해당 개수만큼 건너뛰고 반환한다. DENSE_RANK : 동일한 값이면 중복 순위를 부여하고, 다음 순위는 중복 순위와 상관없이 순차적으로 반환한다. ROW_NUMBER : 중복 관계없이 순차적으로 순위를 반환한다. RANK 함수 RANK 함수는 동일한 값이면 중복 순위를 부여하고, 다음 순위는 해당 개수만큼 건너뛰고 반환합니다. RANK 함수를 사용해서 조회한 결과를 보면, SAL(급여) 값이 동일한 경우에는 순위 값이 '2'로 중복 순위를 부여합니다. 중복 순위 다음에는 순위 값이 '4'입니다. ..
CASE ~ WHEN ~ THEN ~ ELSE ~ END [형식] CASE 컬럼명 | 표현식 WHEN 조건식1 THEN 결과1 WHEN 조건식2 THEN 결과2 ....... WHEN 조건식n THEN 결과n ELSE 결과 END 조건문과 조건문 사이에는 콤마(,) 를 사용하지 않는다. CASE 문은 반드시 END 로 끝내야 한다. CASE 표현식은 ANSI SQL 형식도 지원한다. 결과 부분은 NULL 을 사용해서는 안된다. case when x = y then a else b end : 조건 x =y 가 true 일 경우 a 이고 그렇지 않으면 b case when x < y then a when x = y then b else c end : 조건 x
셀프 조인: 자기 자신에게 테이블을 조인하는 법 셀프 조인은 여러 조인 중에서도 꽤나 독특한 아이입니다. 2개의 서로 다른 테이블 내에 있는 데이터를 하나의 테이블로 붙이는 대신 자기 자신 안에 있는 똑같은 데이터를 가져다 붙이니까요. 어째서 이미 존재하는 데이터를 조인을 통해 또 가져다 붙여 쓰고 싶은 것일까요? 위에서 살펴본 조인의 예시는 city 테이블 내의 열인 name 을 customer 테이블에 가져다 붙이고 싶었습니다. 그래서 2개의 테이블을 조인해 주었죠. 하지만 셀프 조인을 한다는 것은, 예를 들자면, customer 테이블의 데이터를 다시 customer 테이블에다가 가져다 붙이는 것입니다. customer 테이블을 가져와서 부연 설명을 해보도록 하겠습니다. customer_id fir..