오라클에는 아래 쿼리처럼, 함수가 있어서 포맷만 지정하면 편하게 사용할 수 있지만 mysql 에서 주별로 데이터를 조회하려면 함수가 없어서 직접 작성해주어야한다.
SELECT d "Original Date",
trunc(d) "Nearest Day, Time Removed",
trunc(d, 'ww') "Nearest Week",
trunc(d, 'iw') "Start of Week",
trunc(d, 'mm') "Start of Month",
trunc(d, 'year') "Start of Year"
FROM dates;
SQL Language Reference
docs.oracle.com
그래서 아래처럼, 날짜를 계산해서 넣어주는 방식을 이용한다. 계산한 컬럼값을 concat으로 합쳐서 반환하여 조회할 수 있다.
기존 코드
concat( date_format(sd_ymd,'%Y %m '), weekofyear(sd_ymd) - weekofyear(LAST_DAY(sd_ymd - interval 1 month) +
interval 1 DAY ) +1 ) as sd_ymd ,
다른 월은 잘 출력 되었으나1월에서 오류 발생
- LAST_DAY() : 인자값의 마지막일을 반환하는 함수
변경한 코드
concat( date_format(sd_ymd,'%Y %m '), WEEK(sd_ymd, 5) - WEEK(DATE_SUB(sd_ymd, INTERVAL DAYOFMONTH(sd_ymd) - 1 DAY), 5) + 1 ) as sd_ymd ,
- DATE_SUB() : 시간 빼기
'Development > Python' 카테고리의 다른 글
[Python] logging 모듈 (0) | 2023.05.17 |
---|---|
[Python] instaloader 라이브러리 (1) | 2023.05.08 |
[Python] lxml 설치 (0) | 2023.03.06 |
[Python] replace가 안될 때 (0) | 2023.03.02 |
[Python] undetected_chromedriver 오류 해결 (0) | 2023.02.22 |