■ DECLARE 함수
- 변수를 선언하고 데이터 타입을 지정하는 함수(선언된 변수는 스크립트 내에 값이 할당되고 사용될 수 있음)
- DECLARE 함수 활용 예시
DECLARE @StartDate DATE;
- 예시) NAME변수에 '홍길동'을 문자열 타입으로 조회하고, AGE변수는 '30'을 정수 타입으로 조회
DECLARE @NAME VARCHAR(10) = '홍길동'
DECLARE @AGE INT = 30;
■ SET 함수
- 선언된 변수에 특정 값을 할당하는 함수(값은 고정된 값일 수도 있고, 계산된 결과나 쿼리의 결과일 수 있음)
- SET 함수 활용 예시
# DATEADD : 특정 날짜/시간 단위를 더하여 반환해주는 함수
# DATEDIFF : 두 날짜 사이의 차이를 반환하는 함수
# 1. 값을 직접 지정
SET @StartDate = '2024-01-01'
# 2. 함수를 통한 결과 값을 간접 지정
SET @StartDate = DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) -1, 0);
- 예시) 0~23시간별 결과 출력
# hour변수에 '-1'을 넣고 선언
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
ORDER BY
HOUR;