> 데이터 베이스 > MySQL 튜토리얼 > 사용자 정의 '월-연도' 형식으로 SQL 데이터를 월 및 연도별로 그룹화하려면 어떻게 해야 합니까?

사용자 정의 '월-연도' 형식으로 SQL 데이터를 월 및 연도별로 그룹화하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-12-29 00:30:10
원래의
321명이 탐색했습니다.

How Can I Group SQL Data by Month and Year in a Custom

사용자 정의 형식의 월 및 연도별 SQL 그룹화

SQL에서 타임스탬프로 작업할 때 특정별로 데이터를 그룹화하는 것이 유용할 수 있습니다. 몇 달 또는 몇 년과 같은 간격. 그러나 DATE 또는 TIMESTAMP 데이터 유형의 기본 형식은 원하는 프레젠테이션과 항상 일치하지 않을 수 있습니다. 이와 관련하여 일반적인 과제는 "월-연도"와 같은 사용자 지정 형식으로 날짜를 표시하는 것입니다.

다음 SQL 쿼리를 고려하세요.

SELECT MONTH(date) + '.' + YEAR(date) AS Mjesec,
       SUM(marketingExpense) AS SumaMarketing,
       SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)
로그인 후 복사

이 쿼리는 월별, 연도별 데이터를 조회하고, 마케팅 비용과 수익을 합산하여 표시합니다. 그러나 첫 번째 열인 "Mjesec"에는 현재 "9"와 같은 월만 표시됩니다. "월-연도"를 표시하도록 출력을 수정하려면 캐스팅과 문자열 연결의 조합이 필요합니다.

한 가지 접근 방식은 월 및 연도 값을 문자열로 캐스팅한 다음 수동으로 연결하는 것입니다.

SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec,
       SUM(marketingExpense) AS SumaMarketing,
       SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4))
로그인 후 복사

원하는 "월-연도" 형식(예: "9-2011")이 출력됩니다. 또는 40-Love에서 제안한 대로 앞에 0을 사용하여 캐스팅을 수행하면 다음과 같은 GROUP BY 절이 생성됩니다.

GROUP BY 
  CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2) 
로그인 후 복사

이 변형은 월이 항상 2로 표시되도록 앞에 0을 추가합니다. -숫자.

위 내용은 사용자 정의 '월-연도' 형식으로 SQL 데이터를 월 및 연도별로 그룹화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿