개발자
WHERE MONTH(DATE) = 3은 안되고 WHERE MONTH(DATE) = ""3"" 은 작동하던데.. 근데 또 WHERE YEAR(DATE) = 2022는 되더라고요..? 이게 대체 무슨 원리일까요....ㅠ
답변 2
실제로 SQL의 MONTH() 함수는 정수 값을 반환합니다. 따라서 WHERE 절에서 MONTH(DATE) = 3을 사용하는 것이 올바른 방법입니다. 문자열과 비교하는 것은 작동하지 않아야 합니다. 말씀하신대로 YEAR() 함수도 정수 값을 반환하므로, WHERE YEAR(DATE) = 2022와 같이 사용하면 됩니다. 만약 문자열과 비교하는 것이 작동한다면, 사용하는 데이터베이스 관리 시스템(DBMS)이 암시적 형변환을 수행하는 것일 수 있습니다. 하지만 이러한 암시적 형변환은 데이터베이스 시스템에 따라 다르게 작동할 수 있으므로, 되도록이면 정수 값과 비교하는 것이 좋습니다.
1
SELECT * FROM table_name WHERE MONTH(DATE) = 3;
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!