2017-04-12 1 views
0

나는이 문제에 관해서 링크를 읽었지만, 더 많이 읽으면 혼란 스럽다.
내 DB에는 'YYYY-MM-DD'형식의 날짜 열이 있습니다. 나는 일과 관계없이 월 + 일 변경의 횟수를 계산해야합니다. 현재 사용하고 있습니다 :다시 SQL 날짜 변환

$query = "SELECT COUNT(data) as visits, COUNT(DISTINCT data) as diffentDates ,MIN(data) as 'MIN', MAX(data) as 'MAX' FROM visiting "; 

'데이터'는 내 열의 값입니다.
잘 작동합니다. 방문수 합계, 다른 날짜 수, 첫 방문 및 마지막 방문이 표시됩니다.
문제는 'diffentDates'와 함께 제공됩니다. 'YYMM'의 변경 사항 만 계산해야합니다.
비슷한 것을 사용하려고했습니다 : COUNT(DISTINCT (FORMAT (data,'YYMM'))) as diffentDates
하지만 실제로는 오류가 발생하거나 모든 날짜를 선택합니다.
'YYYY-MM-DD'에서 'YYMM'(으)로 변환 (및 선택 및 계산)하는 데 올바른 기능은 무엇입니까?
감사

+1

가 열 데이터의 SQL 유형은 무엇입니까? TIMESTAMP? 날짜? 당신은 DISTINCT와 함께 DATE_FORMAT() 함수를 사용할 수있다. –

답변

1

만약 다음과 같은 작업을해야가 TIMESTAMP 또는 DATE 유형의 열 데이터 :

SELECT 
    COUNT(`data`) as visits, 
    COUNT(DISTINCT DATE_FORMAT(`data`,'%Y%m')) as diffentDates, 
    MIN(`data`) as 'MIN', 
    MAX(`data`) as 'MAX' 
FROM `visiting`