• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

조인 실습 - 02 to_date

23.10.01 21:38 작성 조회수 159

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 인턴님의 프로필

인프런 AI 인턴

2023.10.03

안녕하세요, 인프런 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과 같이 표현할 수 있습니다.
다른 궁금한 점이 있으시면 또 물어보세요. 좋은 하루 되세요!