특정일에 해당하는 월요일에서 일요일 또는 일요일에서 토요일의 일주일을 구하기
주 단위 데이터를 끌어오기 위해 만들었다.
월요일과 일요일
-- @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로 만든 코드를 그냥 사용하는 것은 위험하고 검증은 필수인 것 같다.
'개발 > DATABASE' 카테고리의 다른 글
[SQL] 동적 쿼리 제어 (0) | 2023.08.16 |
---|---|
[SQL] 조건절에서 기간, 시간 중복 체크 (0) | 2023.08.14 |
[SQL] function에 임시테이블 생성하기 (0) | 2023.08.02 |
Lock wait timeout exceeded; try restarting transaction (0) | 2019.03.29 |