사용자 정의 형식의 월 및 연도별 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!