SET
을 이용하거나 SELECT
를 이용해 값을 넣는 방법이다SET 을 이용하는 경우는 SET 변수 = 100; 이러한 형식으로 값을 넣지만 SELECT는 조건이 필요하다
SELECT 로 값을 받아오려면 사용자 정의 변수를 사용해야 하는데 3가지 조건이 필요하다
=
이 아니라 :=
를 사용한다이 SET을 사용해서 입양 시각 구하기(2) 문제를 풀었는데
SET @hour := -1;
SELECT ( @hour := @hour +1 ) as HOUR,
(
select count(*) from ANIMAL_OUTS
where HOUR(DATETIME) = @hour
) as COUNT
from ANIMAL_OUTS
where @hour < 23
코드는 다음과 같다
IFNULL (expression1, expression2)
IFNULL 을 이용해 NULL 처리하기 문제를 풀었는데
SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') as NAME, SEX_UPON_INTAKE from ANIMAL_INS as a
order by ANIMAL_ID
코드는 다음과 같다
MySQL에서는 to_char()
이 없기 때문에 date_format()
을 사용해야 한다
주의해야 할 부분은 Data_format
같은 경우 format부분에 대소문자를 구분한다
대문자를 넣었을 때와, 소문자를 넣었을 때가 다르므로 잘 구분해야한다!
변환함수 | 실행예제 | 실행결과 |
---|---|---|
date_format() | date_format(sysdate(), '%y-%m-%d') | 22-05-08 |
date_format() | date_format(sysdate(), '%Y-%m-%d') | 2022-05-08 |
date_format() | date_format(sysdate(), '%Y-%M-%d') | 2022-May-08 |
y
를 소문자로 쓴 경우 뒤에 두자리만 표기 가 된다M
) 를 사용하면 영어로 표기 가 된다예시:
형식 | 설명 |
---|---|
%Y | 4자리 연도 |
%y | 2자리 연도 |
%m | 2자리 월(00-12) |
%c | 1자리 월, 10보다 작을 경우(1-12) |
%M | 영어로 표기(January, February ..) |
%b | 영어 약어로 표기(Jan, Feb ...) |
%d | 2자리 일 |
%e | 1자리 일, 10보다 작을 경우(0-31) |
%D | 1st, 2nd .. |
date_format()을 이용해 DATETIME에서 DATE로 형변환 문제를 풀었는데
SELECT ANIMAL_ID, NAME, date_format(DATETIME, '%Y-%m-%d') as '날짜' FROM ANIMAL_INS as A
order by ANIMAL_ID
코드는 다음과 같다