내배캠 14일차

포도당·2025년 5월 13일
1

예제 5)

17번
team_projects 테이블에서 AWS 예산(aws_cost)이 40000 이상 들어간 프로젝트들의 이름을 선택하는 쿼리를 작성해주세요!
정담: select name
from team_projects
where aws_cost>=40000
실수 : 이름을 선택하라고 했음으로 name, 40000이상 이라고 했음으로 "="

  1. team_projects 테이블에서 2022년에 시작된 프로젝트를 선택하는 쿼리를 작성해주세요! 단, start_date < ‘2023-01-01’ 조건을 사용하지 말고 쿼리를 작성해주세요!
    정답:
    select *
    from team_projects
    where YEAR(start_date) = 2022
    실수 : year절 을 몰랐음, 2022에 따음표 쓰려고 했음.

  2. team_projects 테이블에서 현재 진행중인 프로젝트를 선택하는 쿼리를 작성해주세요. 단, 지금 시점의 날짜를 하드코딩해서 쿼리하지 말아주세요!
    (하드코딩은 직접입력 금지 참조하는 구문으로)
    select
    from team_projects
    where CURDATE() BETWEEN START_date and end_date
    실수 : CURATE를 몰랐음 위 구문의 뜻은 현재날짜 불러오기, 단 시작 과 끝 날짜 사이에( 그러니까 오늘 날짜가 시작, 끝 사이에 있는) 있는 날짜만 불러오기
    CURDATE(): 현재 날짜를 반환한다.
    CURTIME(): 현재 시간을 반환한다.
    NOW(): 현재 날짜와 시간 정보를 반환한다.

  3. team_projects 테이블에서 각 프로젝트의 지속 기간을 일 수로 계산하는 쿼리를 작성해주세요!

문제풀기 전에 생각해본것:
1. 비트윈을 이용해서 날짜를 세는 함수
2. 그럼 count 인가?

select *
from team_projects
where count(date) between start_date And end_date;
틀림

정답 : slect name,
DATEDIFF(end_date, start_date) as "working_days"
from team_projects;

여기서 DATEDIFF 함수란? (날짜부분, 시작날짜, 끝날짜,[주시작])

날짜부분 = 'year', 'month'
시작
날짜 = 시작하는 날짜를 말한다.
날짜 : 끝나는 날짜를 말한다.
시작 : 한주의 시작요일을 말한다.
궁금증 저 첫번째 부분에 날짜_부분은 뭘까?)

새롭게 알게 된 부분

  1. datediff 함수시 (종료일, 시작일) 인 이유는 양수 값이 나와야 됨으로
  2. as 식별자 할시 언더바를 하면 따음표 필요 x, 언더바 없이 띄우면 따음표 있어야됨
  3. curate() BETWEE
profile
어디까지 성장할 것 인가..!

0개의 댓글