inblog logo
|
An's Blog
    DataBaes

    [DB] 3. SELECT 단일행 함수

    윤설안's avatar
    윤설안
    Feb 25, 2025
    [DB] 3. SELECT 단일행 함수
    Contents
    1. 날짜/시간2. 날짜 포맷 (대소문자 주의)3. 날짜 연산4. 수학함수5. 문자열함수6. 조건문

    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
    Contents
    1. 날짜/시간2. 날짜 포맷 (대소문자 주의)3. 날짜 연산4. 수학함수5. 문자열함수6. 조건문

    An's Blog

    RSS·Powered by Inblog