실제로 SQL의 MONTH() 함수는 정수 값을 반환합니다. 따라서 WHERE 절에서 MONTH(DATE) = 3을 사용하는 것이 올바른 방법입니다. 문자열과 비교하는 것은 작동하지 않아야 합니다.
말씀하신대로 YEAR() 함수도 정수 값을 반환하므로, WHERE YEAR(DATE) = 2022와 같이 사용하면 됩니다.
만약 문자열과 비교하는 것이 작동한다면, 사용하는 데이터베이스 관리 시스템(DBMS)이 암시적 형변환을 수행하는 것일 수 있습니다. 하지만 이러한 암시적 형변환은 데이터베이스 시스템에 따라 다르게 작동할 수 있으므로, 되도록이면 정수 값과 비교하는 것이 좋습니다.