2016-08-11 2 views
0

postgresql에서 ISOYEAR의 시작 날짜를 얻는 방법은 무엇입니까?Postgresql ISOYEAR 첫 번째 날짜

예를 들어, 2012-01-01, isoyear는 2011이고 isoyear는 2011-01-03에 시작하여 2012-01-01에 끝납니다.

isoyear를 얻는 방법은 여러 가지가 있지만 isoear가 시작되는 날짜를 얻는 방법을 알지 못합니다.

select extract(isoyear from '01.01.2012'::date) 

select to_char('01.01.2012'::date,'IYYY') 
+0

이 당신이 찾고있는 무엇인가? "각 ISO 8601 주 번호 매기기 연도는 1 월 4 일을 포함하는 월요일로 시작하므로 1 월 초 또는 12 월 말 ISO 연도는 그레고리력의 연도와 다를 수 있습니다. 자세한 내용은 주 필드를 참조하십시오 This 8.3 이전의 PostgreSQL 릴리스에서는 필드를 사용할 수 없습니다. " Ref https://www.postgresql.org/docs/current/static/functions-datetime.html – pnorton

답변

2

은 "ISO 해"의 첫 번째 "ISO의 날"로 변환하는 데 질문

=> SELECT to_date('2011-0001', 'IYYY-IDDD'); 
    to_date 
------------ 
2011-01-03 
+0

FYI : 형식 필드는 'IDDD'(4 자)라고하지만 세 자리 만 필요합니다. postgres docs는 '001'에서 '366'까지의 값을 취한다고 말한다. 그래도 좋은 솔루션! – dcsohl

관련 문제