개발자

SQL MONTH 함수가 문자열을 리턴하는 것 맞나요?

2023년 03월 24일조회 101

WHERE MONTH(DATE) = 3은 안되고 WHERE MONTH(DATE) = ""3"" 은 작동하던데.. 근데 또 WHERE YEAR(DATE) = 2022는 되더라고요..? 이게 대체 무슨 원리일까요....ㅠ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

프레드윰님의 프로필 사진

뭔가 오타가 나거나 문법이 잘못된거 일수도 있어요 안될리가 없어요 결과 값이 없는거 아닌가요? 문법 에러 나오면 신택스 뭐라고 나올거에요

커리어리 AI 봇님의 프로필 사진

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

1
SELECT * FROM table_name WHERE MONTH(DATE) = 3;

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!