반응형
현재 날짜 확인
- Oracle : SYSDATE
- MySQL : now()
날짜 포맷
Date to String
Oracle : TO_CHAR(날짜, ‘형식’)
TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS')
-- 2023-04-18 -> 20230418162030
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
-- 2023-04-18 -> 2023-04-18 16:20:30
TO_CHAR(SYSDATE, 'MM-DD-YYYY')
-- 2023-04-18 -> 04-18-2023
- 문자열에 따라 표현의 차이가 있음
- YYYY : 4자리 년도
- YY : 2자리 년도
- DD : 31일 형태의 일
- DDD : 366일 형태의 일
- HH24 : 24시 형태의 시
- HH12 : 12시 형태의 시
MySQL : DATE_FORMAT(날짜, ‘형식’)
DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
-- 2023-04-18 -> 20230418162030
DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
-- 2023-04-18 -> 2023-04-18 16:20:30
DATE_FORMAT(NOW(), '%m-%d-%Y')
-- 2023-04-18 -> 04-18-2023
- % 기호와 대소문자마다 표현의 차이가 있음
- %Y : 4자리 년도, 2023
- %y : 2자리 년도, 23
- %M : 영어로 월 표현
- %m : 숫자로 월 표현
- %H : 24시간 형태의 시
- %h : 12시간 형태의 시
- %T : hh:mm:ss
요일
Oracle : TO_CHAR()
- 요일을 1~7로 인식 (1부터 일, 월, 화, 수, 목, 금, 토, 일)
TO_CHAR(SYSDATE - 1, 'D')
-- 3 -> 2
TO_CHAR(SYSDATE + 1, 'D')
-- 3 -> 4
TO_CHAR(SYSDATE - 1, 'YYYY-MM-DD HH24:MI:SS')
-- 2023-04-17 16:20:30
TO_CHAR(SYSDATE + 1, 'YYYY-MM-DD HH24:MI:SS')
-- 2023-04-19 16:20:30
MySQL : DATE_ADD(), DATE_SUB()
- 요일을 0~6으로 인식 (0부터 일, 월, 화, 수, 목, 금, 토, 일)
DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), '%w')
-- 2 -> 1
DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 DAY), '%w')
-- 2 -> 3
DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%s')
-- 2023-04-17 16:20:30
DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 DAY), '%Y-%m-%d %H:%i:%s')
-- 2023-04-19 16:20:30
String To Date
Oracle : TO_DATE(’문자열’, ‘형식’)
TO_DATE('20230418162030', 'YYYYMMDDHH24MISS')
-- 20230418162030 -> 2023-04-18 16:20:30
MySQL : STR_TO_CHAR(’문자열’, ‘형식’)
STR_TO_DATE('20230418162030', '%Y%m%d%H%i%s')
-- 20230418162030 -> 2023-04-18 16:20:30
NULL 값 확인
Oracle : NVL(컬럼, ‘문자열’)
SELECT NVL(NAME, '없음') AS NAME
FROM MEMBER
- NAME 컬럼의 값이 NULL인 경우 ‘없음’으로 대치
MySQL : IFNULL(컬럼, ‘문자열’)
SELECT IFNULL(NAME, '없음') AS NAME
FROM MEMBER
- NAME 컬럼의 값이 NULL인 경우 ‘없음’으로 대치
형 변환
Oracle
- TO_CHAR() - Date to String 또는 Number to String
TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')
TO_CHAR(12345)
TO_CHAR(PRICE)
- TO_NUMBER(‘문자열’) - String to Number
TO_NUMBER('12345')
TO_NUMBER(PRICE)
- TO_DATE(’문자열’, ‘형식’) - Stringto Date
- 날짜 포맷 부분 참고
MySQL
- CAST(a AS b)
CAST(1234 AS CHAR)
CAST('1234' AS SIGNED)
CAST('2023-04-18 16:20:30' AS DATE)
CAST(NOW() AS SIGNED)
- CONVERT(a, b)
CONVERT(1234, CHAR)
CONVERT('1234', SIGNED)
CONVERT('2023-04-18 16:20:30', DATE)
CONVERT(NOW(), CHAR)
문자 합치기
Oracle : CONCAT(’A’, ‘B’), ‘A’ || ‘B’ || ‘C’ …
'Hello' || ' ' || 'World'
-- Hello World
CONCAT(CONCAT('Hello', ' '), 'World')
-- Hello World
MySQL : CONCAT(’A’, ‘B’, ‘C’, …)
CONCAT('Hello', ' ', 'World')
-- Hello World
CONCAT('Hello ', 'World')
-- Hello World
CONCAT('H', 'e', 'l', 'l', 'o')
-- Hello
페이징처리
Oracle : ROWNUM
SELECT (
SELECT *
FROM MEMBER
ORDER BY NAME
)
WHERE ROWNUM <= 5;
SELECT (
SELECT *
FROM MEMBER
ORDER BY NAME
)
WHERE ROWNUM 5 BETWEEN 10;
MySQL : LIMIT
SELECT *
FROM MEMBER
ORDER BY NAME LIMIT 5;
SELECT *
FROM MEMBER
ORDER BY NAME LIMIT 5, 10;
시퀀스
Oracle : NEXTVAL, CURRVAL
SEQ.NEXTVAL
-- 시퀀스의 값을 증가 시킴
SEQ.CURRVAL
-- 현재 시퀀스
Mysql
- 시퀀스 기능이 존재하지 않음.
반응형
'데이터베이스(DB: Database) > SQL' 카테고리의 다른 글
[SQL] 오라클(Oracle) 형변환 함수 정리 (0) | 2023.06.03 |
---|---|
[SQL] 오라클(Oracle) 날짜 함수 정리 (0) | 2023.05.30 |
[SQL] 오라클(Oracle) 문자열 함수 정리 (0) | 2023.05.26 |
[SQL] 오라클(Oracle) 숫자 함수 정리 (0) | 2023.04.26 |
[SQL] SQL과 NoSQL의 차이 (관계형 데이터베이스 vs 비관계형 데이터베이스) (0) | 2022.10.06 |