[DB] 3. SELECT 단일행 함수

편준민's avatar
Feb 25, 2025
[DB] 3. SELECT 단일행 함수

1. 날짜/시간

-- 1. 날짜/시간 select now(); select ename, hiredate, now() from emp; -- 문자열 select '2025-02-25'; -- 문자열을 date 타입으로 바꾸기 select date('2025-02-25 12:30:35'); -- 시간 select time('2025-02-25 12:30:35'); -- 연도 select year('2025-02-25 12:30:35'); -- 월 select month('2025-02-25 12:30:35'); -- 일 select day('2025-02-25 12:30:35'); -- 시간 select hour('2025-02-25 12:30:35'); -- 분 select minute('2025-02-25 12:30:35'); -- 초 select second('2025-02-25 12:30:35');

2. 날짜 포맷 (대소문자 주의)

select date_format(now(), '%Y/%m/%d');

✅ 주요 날짜/시간 포맷 키:

의미
예시 (2024-02-25 14:30:45)
%Y
4자리 연도
2024
%y
2자리 연도
24
%m
2자리 월 (01~12)
02
%c
12자리 월 (112)
2
%d
2자리 일 (01~31)
25
%e
12자리 일 (131)
25
%H
24시간제 시간 (00~23)
14
%h
12시간제 시간 (01~12)
02
%I
12시간제 시간 (01~12)
02
%l
12자리 12시간제 (112)
2
%i
분 (00~59)
30
%S
초 (00~59)
45
%s
초 (00~59)
45
%p
AM/PM
PM
%f
마이크로초 (6자리)
123456
%W
요일 (영어)
Sunday
%a
요일 (짧은 영어)
Sun
%w
요일 (0=일요일~6=토요일)
0
%M
월 (영어)
February
%b
월 (짧은 영어)
Feb
%j
연중 일차 (001~366)
056
%U
연중 주차 (00~53, 일요일 시작)
08
%V
연중 주차 (01~53, ISO 8601 표준)
08
%X
ISO 8601 연도
2024
%x
연도 (주차 기준, 4자리)
2024

3. 날짜 연산

-- 3. 날짜 연산하기 (더하기, 빼기, 간격, 마지막날짜) select date_add(now(), interval 4 year); select date_add(now(), interval 4 month); select date_add(now(), interval 4 week); select date_add(now(), interval 4 day); select date_add(now(), interval 4 hour); select date_add(now(), interval 4 minute); select date_add(now(), interval 4 second); -- 뺴기 select date_sub('2025-02-25', interval 2 day); -- 간격 (날짜의 차이) select datediff('2025-02-25', '2025-03-01'); -- 현재 시간과 선택한 시간의 차이 (time = 시,분,초) select timediff(now(), '2025-02-25 12:50:00'); -- 해당 월의 마지막 날짜 select last_day(now());

4. 수학함수

MySQL의 수학함수가 엄청나게 많은데 함수를 찾고 싶을 때는 챗 GPT에게 MySQL의 수학함수를 알려달라고 물어본다.
-- 4. 수학 함수 select floor(101.5); -- 내림 select ceil(101.5); -- 올림 select round(101.5); -- 반올림 select mod(101,10); -- 나머지

5. 문자열함수

-- 5. 문자열 함수 -- substr(시작번지1~, 계수) select substr(hiredate,1,4) from emp; select year(hiredate) from emp; select replace("010-2222-7777", "/","="); -- / 를 - 으로 바꾸기 select instr("abcde", "c"); -- c가 몇번 자리에 있는지 표시 select rpad('ssarmango', 10, '*'); -- 10까지 표시후 나머지는 *로 표시 select rpad(substr('ssarmango',1,4), LENGTH("ssarmango"), '*'); -- 오른쪽에 * select lpad(substr('ssarmango',1,4), LENGTH("ssarmango"), '*'); -- 왼쪽에 *

6. 조건문

if 문법은 MySQL에만 있는 문법이고, case when은 모든 DB에 있는 문법이다. 다른 DB를 사용할 수 있고, 주로 Oracle을 많이 사용하기에 case when 연습을 많이 해야한다.
-- 조건문 (if - mysql , csae when - 모든 DB) select if(10>5, "참", "거짓"); -- 2500 (고액연봉), (일반연봉) select ename, sal, case when sal > 2500 then "고액연봉" when sal <2000 then "일반연봉" else "중간연봉" end "연봉그룹" from emp;
 
 
 
문제
 
Share article

YunSeolAn