transactions
데이터 행이 날짜와 함께 저장 되는 테이블 이름 이 있습니다.
처럼
`trans_id` `amount` `tdate`
지난 30 일, 지난 31 일 60 일, 지난 61-90 일과 같은 데이터를 필터링하고 전체 금액도 계산합니다.
내 질문은
지난 30 일 동안
SELECT SUM(amount) AS amt FROM transactions GROUP BY DATE(tdate) ORDER BY DATE(tdate) DESC LIMIT 30
잘 작동하고 금액의 합계 표시 (지난 30 일)
그러나 지난 31-60 일 동안 작동하지 않음
SELECT SUM(amount) AS amt FROM transactions GROUP BY DATE(tdate) ORDER BY DATE(tdate) DESC LIMIT 60,31
그것을 해결하는 방법? 31 ~ 60 일의 금액 만 포함하고 싶습니다.
다음을 사용하십시오. (오늘부터 지난 30 일 사이의 데이터를 반환합니다.)
SELECT DATE_FORMAT(DateCol, '%m/%d/%Y')
FROM Table
WHERE DateCol BETWEEN CURDATE() - INTERVAL
30 DAY AND CURDATE()
또는 더 정확하게는 다음과 같이 트릭을 수행합니다.
DateCol BETWEEN (NOW() - INTERVAL 60 DAY)
AND (NOW() - INTERVAL 30 DAY)
CURDATE ()는 날짜 부분에서만 작동합니다. DateTime 열이 있으면 NOW ()가 수행합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다