본문 바로가기

개발/DATABASE

[SQL] 특정일 기준 일주일 구하기 (월-일, 일-토)

특정일에 해당하는 월요일에서 일요일 또는 일요일에서 토요일의 일주일을 구하기

주 단위 데이터를 끌어오기 위해 만들었다.

 

월요일과 일요일

-- @V_DATE기준 월요일 ~ 일요일
SET @V_DATE = '20230816';

SELECT
    DATE_SUB(STR_TO_DATE(@V_DATE, '%Y%m%d'), INTERVAL (DAYOFWEEK(STR_TO_DATE(@V_DATE, '%Y%m%d')) + 5) % 7 DAY) AS START_OF_WEEK,
    DATE_ADD(STR_TO_DATE(@V_DATE, '%Y%m%d'), INTERVAL (6 - DAYOFWEEK(STR_TO_DATE(@V_DATE, '%Y%m%d'))) DAY) AS END_OF_WEEK;

 

일요일과 토요일

-- @V_DATE기준 일요일 ~ 토요일
SET @V_DATE = '20230816';

SELECT
	DATE_ADD(STR_TO_DATE(@V_DATE, '%Y%m%d'), INTERVAL CASE WHEN DAYOFWEEK(STR_TO_DATE(@V_DATE, '%Y%m%d')) = 1 THEN 1 ELSE DAYOFWEEK(STR_TO_DATE(@V_DATE, '%Y%m%d')) END * -1 +1 DAY) AS START_OF_WEEK,
    DATE_ADD(STR_TO_DATE(@V_DATE, '%Y%m%d'), INTERVAL CASE WHEN DAYOFWEEK(STR_TO_DATE(@V_DATE, '%Y%m%d')) = 1 THEN 1 ELSE DAYOFWEEK(STR_TO_DATE(@V_DATE, '%Y%m%d')) END * -1 +7 DAY) AS END_OF_WEEK;

 

추가로 해당 코드는 GPT에 간결하게 해 줘, 개선 해 줘 했는데 그럴듯한 코드에 그러지 못한 결과가 나왔다.

내 질문이 부족했던 걸까. 모르겠다.

GPT로 만든 코드를 그냥 사용하는 것은 위험하고 검증은 필수인 것 같다.