-- SELECT 단일행 함수
-- 1. 날짜/시간
-- now()는 함수
select now();
select ename, hiredate, now()
from emp;
-- 이렇게 적으면 날짜가 아니라 단순히 문자열이다.
select '2025-02-25';
-- 년 월 일 표시
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/%h:%i:%s');
select date_format(now(),'%Y-%m-%d');
-- 3. 날짜 연산하기 (더하기)
-- 4년 후
select date_add(now(), interval 4 YEAR);
-- 4달 후
select date_add(now(), interval 4 MONTH);
-- 4주 후
select date_add(now(), interval 4 WEEK);
-- 4일 후
select date_add(now(), interval 4 day);
-- 4시간 후
select date_add(now(), interval 4 HOUR);
-- 4분 후
select date_add(now(), interval 4 MINUTE);
-- 4초 후
select date_add(now(), interval 4 SECOND);
-- -----------------------------------------
-- 날짜 연산하기(빼기)
select date_sub('2025-02-25', interval 4 day);
-- -----------------------------------------
-- 날짜 연산하기(일 간격)
select datediff('2025-02-25', '2025-03-01');
-- -----------------------------------------
-- 날짜 연산하기 (시간 간격)
select timediff(now(),'2025-02-25 12:50:00');
-- -----------------------------------------
-- 날짜 연산하기 (마지막 날짜)
select last_day(now());
-- 4. 수학 함수
-- 내림
select floor(101.5);
-- 올림
select ceil(101.5);
-- 반올림
select round(101.5);
-- 나머지
select mod(101,10);
-- 5. 문자열 함수
-- substr(시작번지 1~, 개수)
select substr(hiredate, 2, 3)
from emp;
select year(hiredate)
from emp;
-- /를 -로 바꾸겠다
select replace('010/2222/7777','/','-');
-- 번지수 찾는 쿼리
select instr('abcdefg','c');
-- 오른쪽으로 *넣는 쿼리
select rpad('ssarmango',10,'*');
select rpad(substr('ssarmango',1,4), LENGTH("ssarmango"), '*');
select lpad(substr('ssarmango',1,4), LENGTH("ssarmango"), '*');
-- 6. 문제 풀기
select name, replace(tel,'381','***')
from student;
select name, tel
from student;
select name, tel, replace(tel,substr(tel,instr(tel,')')+1, instr(tel,'-')-instr(tel,')')-1),'***')
from student;
select name, replace(tel, substr(tel, instr(tel, ")")+1,
instr(tel, "-")-instr(tel, ")")-1),
repeat('*', LENGTH(substr(tel, instr(tel, ")")+1,
instr(tel, "-")-instr(tel, ")")-1))))
from student;
Share article