728x90
17. team_projects 테이블에서 AWS 예산(aws_cost)이 40000 이상 들어간 프로젝트들의 이름을 선택하는 쿼리를 작성해주세요!
SELECT name FROM team_projects WHERE aws_cost >= 40000; |
18. team_projects 테이블에서 2022년에 시작된 프로젝트를 선택하는 쿼리를 작성해주세요! 단, start_date < ‘2023-01-01’ 조건을 사용하지 말고 쿼리를 작성해주세요!
SELECT name FROM team_projects WHERE EXTRACT(YEAR FROM start_date) = 2022; |
19. team_projects 테이블에서 현재 진행중인 프로젝트를 선택하는 쿼리를 작성해주세요. 단, 지금 시점의 날짜를 하드코딩해서 쿼리하지 말아주세요!
SELECT * FROM team_projects WHERE end_date IS NULL OR end_date > CURRENT_DATE; |
20. team_projects 테이블에서 각 프로젝트의 지속 기간을 일 수로 계산하는 쿼리를 작성해주세요!
SELECT name, DATEDIFF(DAY, start_date, end_date) AS day FROM team_projects; |
풀이
18번
EXTRACT 함수 : 날짜 유형의 데이터로부터 날짜 정보를 분리하여 새로운 컬럼의 형태로 추출해 주는 함수입니다.
SELECT EXTRACT('날짜요소' from 컬럼1) as 별칭 from 테이블A;
SELECT systimestamp, EXTRACT (YEAR FROM systimestamp) as year, EXTRACT (MONTH FROM systimestamp) as month, EXTRACT (DAY FROM systimestamp) as day, EXTRACT (HOUR FROM systimestamp) as hour, EXTRACT (MINUTE FROM systimestamp) as minute, EXTRACT (SECOND FROM systimestamp) as second EXTRACT dual; --시스템 현재시각(SYSTIMESTAMP)에서 연도, 달, 날짜, 시간, 분, 초 추출하기 |
19번
1) CURRENT_DATE : 현재의 세션(session) 날짜 및 시간을 반환하는 날짜 함수입니다.
SELECT CURRENT_DATE FROM dual;
※ session 은 현재의 사용자가 접속 후 접속을 종료할 때까지
※ dual 은 문법을 맞춰주기 위한 더미 테이블 (가짜 테이블)
2) SYSDATE 함수 : 현재의 데이터베이스 서버 날짜 및 시간을 반환하는 날짜 함수입니다.
SELECT SYSDATE FROM dual;
20번
날짜차이, 시간차이 계산 : DATEDIFF
※ DATEPART는 약어를 사용해도 동일한 결과가 반환됩니다
1) 날짜 차이
SELECT DATEDIFF(DAY, '2021-06-12', '2021-07-13') AS day , DATEDIFF(MONTH, '2021-06-12', '2021-07-13') AS month , DATEDIFF(YEAR, '2021-06-12', '2021-07-13') AS year |
SELECT DATEDIFF(DD, '2021-06-12', '2021-07-13') AS day , DATEDIFF(MM, '2021-06-12', '2021-07-13') AS year , DATEDIFF(YY, '2021-06-12', '2021-07-13') AS year . |
2) 시간 차이
SELECT DATEDIFF(HOUR, '2021-07-13 19:10:00', '2021-07-13 20:20:00') AS hours , DATEDIFF(MINUTE, '2021-07-13 19:10:00', '2021-07-13 20:20:00') AS minute , DATEDIFF(SECOND, '2021-07-13 19:10:00', '2021-07-13 20:20:00') AS second |
SELECT DATEDIFF(HH, '2021-07-13 19:10:00', '2021-07-13 20:20:00') AS hours , DATEDIFF(MINUTE, '2021-07-13 19:10:00', '2021-07-13 20:20:00') AS minute , DATEDIFF(SECOND, '2021-07-13 19:10:00', '2021-07-13 20:20:00') AS second |
출처
18번 : https://m.blog.naver.com/regenesis90/222226229952
20번 : https://gent.tistory.com/430
'내일배움 과제 > 기타 과제' 카테고리의 다른 글
걷기반 SQL - 7) 랭크게임 하다가 싸워서 피드백 남겼어요… (0) | 2024.10.18 |
---|---|
걷기반 SQL - 6) 팀 프로젝트 열심히 했으니 다시 놀아볼까요?! (0) | 2024.10.18 |
걷기반 SQL - 4) 이제 놀만큼 놀았으니 다시 공부해봅시다! (0) | 2024.10.17 |
걷기반 SQL - 3) 상품 주문이 들어왔으니 주문을 처리해봅시다! (0) | 2024.10.17 |
걷기반 SQL - 2) 이제 좀 벌었으니 flex 한 번 해볼까요?! (1) | 2024.10.16 |