2017-01-20 8 views
0
I 2017의 첫 번째주의 첫 번째 날입니다 2017-01-01201701 같은 값을 변환하려고

는, 나는 시도이STR_TO_DATE 문자열 'YEARWEEK'을 (를) 올바른 날짜로 변환하는 방법은 무엇입니까?

SELECT STR_TO_DATE('201701', '%Y%v') 

때문에 않지만, 대신에 첫날을 얻기의 YEARWEEK() 같은 DATE_FORMAT(DATE, '%Y%v') 작품 해당 주일에

2017-00-00 

도 유효합니다. 물론 유효한 날짜는 아닙니다.

+0

답변이 귀하의 질문에 부합한다면 투표하십시오. – cybork

답변

0

이 시도 :

SELECT 
    DATE_ADD(MAKEDATE(LEFT(d, 4), 1), 
     INTERVAL RIGHT(d, 2) - 1 WEEK) 
FROM 
    (SELECT '201701' d) t 

MAKEDATE() (이 경우 1 일에서) 올해의 주어진 일을 생성합니다. 그리고 주간 시작 시간을 얻기 위해 몇 주가 걸렸습니다.

0

'월요일'을 어떤 식 으로든 스크립트 아래에 추가하면 내가 추측하는 바를 얻을 수 있습니다 (지정된 요일의 날짜).

SELECT STR_TO_DATE('201701 Monday', 
'%X%V %W') 
--returns: 2017-01-02 

는 PS : 2017년 1월 1일 (일요일) 2016 년 2017년 1월 2일 (월)의 52 (1) 2017 년의 주 월요일에 시작하는 주에있는 주이다.