
CURRENT DATE / CURRENT()
- 목적: 오늘 날짜 구하기 YYYY-MM-DD
- SQL에서 TODAY는 작동 안함!
DATEDIFF 함수
- 목적: 두 날짜가 몇일 차이 나는지 구하기 / Date difference 라는 뜻
- 문법: DATEDIFF(A,B) A-B 값으로 나옴
- 예시: DATEDIFF(CURRENT(),hire_date)
doctors 테이블에서 전공(major)가 성형외과인 의사의 이름을 알아내는 쿼리를 작성해주세요!
SELECT name
FROM doctors
WHERE major = '성형외과';
** 문자/날짜는 큰따움표 보다는 작은따옴표로 감싸는 습관
doctors 테이블에서 각 전공 별 의사 수를 계산하는 쿼리를 작성해주세요!
SELECT major
,COUNT(*) AS cnt_major
FROM doctors
GROUP BY major;
doctors 테이블에서 현재 날짜 기준으로 5년 이상 근무(hire_date)한 의사 수를 계산하는 쿼리를 작성해주세요!
정답
SELECT COUNT(*) AS num_of_doctors FROM doctors WHERE hire_date <= DATE_SUB(CURDATE(), INTERVAL 5 YEAR);
내 쿼리
SELECT COUNT(*) AS cnt_doctors
FROM doctors
WHERE hire_date <= DATE_SUB(TODAY, INTERVAL 5 YEAR);
** SQL에서는 오늘 날짜를 넣고 싶을때 TODAY가 아니라 CURDATE() 또는 CURRENT DATE 사용하기!
doctors 테이블에서 각 의사의 근무 기간을 계산하는 쿼리를 작성해주세요!
정답
SELECT name, DATEDIFF(CURDATE(), hire_date) AS working_days FROM doctors;
내 쿼리
SELECT name
,hire_date
FROM doctors
GROUP BY name;
** 단순히 의사별 입사일을 구하는게 아님!
입사일부터 오늘까지의 날짜 차이를 구하기
DATEDIFF() 함수란?
DATEDIFF(A, B)는 A - B 날짜 차이(일수) 를 계산