반응형
이전 달을 계산하는 MySQL 쿼리
전월의 총 주문금액을 계산하고 싶습니다.
저는 현재 날짜에서 이번 달 데이터를 받기 위한 문의를 받았습니다.
SELECT SUM(goods_total) AS Total_Amount FROM orders
WHERE order_placed_date >= date_sub(current_date, INTERVAL 1 MONTH);
이제 이번 달을 제외하고 이전 달 데이터만 가져오려면 어떻게 해야 합니까?
예를 들어.이번 달(7월)에는 15,000달러를 벌었고 지난달(6월)에는 14,000달러를 벌었습니다.
위 쿼리를 실행하면 15,000달러를 받습니다.
하지만 이전 달을 계산하는 방법을 모릅니다.
여기 있습니다. MySQL에서 지난달 1일부터 지난 달 말 사이의 날짜를 가져오려면 다음과 같이 하십시오.
... order_placed_date BETWEEN DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01 00:00:00')
AND DATE_FORMAT(LAST_DAY(NOW() - INTERVAL 1 MONTH), '%Y-%m-%d 23:59:59')
가장 간단한 솔루션:
SELECT SUM(goods_total) AS Total_Amount FROM orders
WHERE YEAR(order_placed_date) = YEAR(CURDATE() - INTERVAL 1 MONTH)
AND MONTH(order_placed_date) = MONTH(CURDATE() - INTERVAL 1 MONTH)
Artem의 쿼리가 전달 마지막 날에 반환되지 않는 것을 발견했습니다(아마도 BETWENT는 마지막 날의 00:00:00부터 계산될 것입니다).
이것은 지난 한 달간은 제게 도움이 될 것 같습니다.
order_placed_date BETWEEN DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-01')
AND DATE_FORMAT(NOW() ,'%Y-%m-01')
여기 또 다른 솔루션 - 문자열 연산 없이
SELECT SUM(goods_total) AS Total_Amount FROM orders
WHERE DATE(order_placed_date)
BETWEEN DATE_ADD(LAST_DAY(DATE_SUB(NOW(), INTERVAL 2 MONTH)), INTERVAL 1 DAY)
AND LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH));
제가 찾은 또 다른 방법은 다음과 같습니다.
SELECT SUM(goods_total) AS Total_Amount FROM orders
WHERE SUBSTRING(o.order_placed_date FROM 1 FOR 7) = SUBSTRING(CURRENT_DATE - INTERVAL 1 MONTH FROM 1 FOR 7)
이것도 효과가 있습니다.
귀찮으면 사용하기 편합니다.
...date_format(order_placed_date, '%Y-%m') = date_format(now() - INTERVAL 1 MONTH, '%Y-%m')
가독성도 높인다고 생각합니다.
이를 위한 한 가지 방법:
DATE_ADD
... WHERE order_placed_date >= DATE_ADD(NOW(), INTERVAL -60 DAY)
AND order_placed_date <= DATE_ADD(NOW(), INTERVAL -30 DAY)
언급URL : https://stackoverflow.com/questions/1138190/mysql-query-to-calculate-the-previous-month
반응형
'programing' 카테고리의 다른 글
MYSQL 8.0 - 지원되지 않는 redo 로그 형식 (0) | 2023.10.14 |
---|---|
뷰 컨트롤러를 다른 뷰 컨트롤러의 하위 뷰로 추가 (0) | 2023.10.14 |
Oracle procedure에서 선택 결과를 변수에 저장하는 방법 (0) | 2023.10.14 |
가로 세로에서 소프트 키보드 입력에 대해 전체 화면 편집 보기를 비활성화하시겠습니까? (0) | 2023.10.14 |
최대 절전 모드 둘 다 복합 기본 키가 있는 경우 관련 없는 두 테이블에 가입 (0) | 2023.10.14 |