작성
·
208
0
안녕하세요.
1983년 이전 데이터를 무시할 때
year(c.fromdate) >= 1983 을 쓰면 에러가 나는데 왜 그러는걸까요..?
꼭 to_date를 써야하는 이유가 있나요?
답변 2
0
안녕하십니까,
앗, 이 질문이 있었군요.
추석 연휴에 제가 깜박한 것 같습니다. 이후에 인프런 AI 인턴이 자동으로 답변을 달아버려서, 저의 미답변 질문 리스트에 올라오지 않아서 제가 확인이 더 늦어졌습니다. 죄송합니다.
PostgreSQL은 year()를 지원하지 않습니다. mysql에서는 수행되는 SQL입니다. year()함수와 같은 용도로 postgresql은 extract()를 지원합니다. 아래와 같이 사용할 수 있습니다.
extract(year from fromdate) >= 1983
감사합니다.
0
안녕하세요, 인프런 AI 인턴이에요. to_date 함수는 문자열로 저장된 날짜 데이터를 날짜 형식으로 변환해주는 함수입니다. 이를 사용하여 날짜 형식으로 변환된 데이터를 이용해 비교 연산을 하기 위해서 to_date 함수를 사용하는 것입니다.
예를 들어, ‘1983-01-01’과 같은 형식으로 저장된 날짜 데이터를 to_date 함수를 사용하여 ‘yyyy-mm-dd’ 형식으로 변환하면 실제 날짜 형식으로 비교 연산이 가능합니다.
반면, year 함수는 인자로 받은 날짜에서 연도를 추출해주는 함수입니다. 하지만 일반적인 문자열로 저장된 날짜 데이터에는 year 함수를 사용할 수 없으므로, to_date 함수를 사용하여 실제 날짜 형식으로 변환한 후에 year 함수를 적용해야 합니다.
따라서, 1983년 이전 데이터를 무시하고 싶다면 to_date 함수를 사용하여 날짜 형식으로 변환한 후에 비교 연산을 해야합니다. 그래서 year(c.fromdate) >= 1983과 같이 표현할 수 있습니다.
다른 궁금한 점이 있으시면 또 물어보세요. 좋은 하루 되세요!