영차영차

[MYSQL] 현재 시점 관련 함수 CURDATE(), CURTIME(), NOW() 본문

MYSQL

[MYSQL] 현재 시점 관련 함수 CURDATE(), CURTIME(), NOW()

유코피치 2025. 2. 18. 16:57

서론

오늘 혼자 자습하면서 문제 풀다가 강의에서 배우지 못한 내용이 문제에 나와서 구글링 해보고 다시 정리해본다.

나를 당황시킨 문제는 아래와 같았다.

문제: 0000 테이블에서 현재 진행중인 프로젝트를 선택하는 쿼리를 작성해주세요. 단, 지금 시점의 날짜를 하드코딩해서 쿼리하지 말아주세요!

?????????????????????????????? 매우 당황했다. 왜냐하면 하드쿼리라는 말도 처음 들어서 무슨 뜻인지 몰랐기 때문에..

찾아보니 하드코딩 하지 말라 = 소스에 현 시점의 날짜(숫자)를 직접 입력하지 말고 함수 문법을 사용해서 풀라는 뜻이었음!

그래서 관련 함수를 찾아봤더니 이런게 나왔다.

 

본론

0. 현재 시점 기준으로 어떠한 정보를 찾아야 할 때!

  • CURDATE(): 현재 날짜
  • CURTIME(): 현재 시간
  • NOW(): 현재 날짜+시간 

예시) projects 라는 테이블에서 현재 진행중인 프로젝트를 선택하는 쿼리를 작성.

        (단, 지금 시점의 날짜를 하드코딩해서 쿼리하지 말아주세요!)

SELECT id, name, start_date, end_date, aws_cost

FROM projects

WHERE CURDATE() BETWEEN start_date AND end_date

 

해석:

현재 날짜 기준 start_date와 end_date 컬럼의 날짜를 조회.

 

결론

처음에 문제 자체를 이해 못해서 많이 당황했다.. 이렇게 하나씩 정보를 모으다보면 도움이 되겠지!
그래도 새로운걸 배워가는건 신기하고 즐겁다ㅎㅎ
다음부터는 당황하지말고 하드코딩해서 쿼리하지말라고하면 바로 써먹어야겠다! 화이팅!

 

728x90