[sql] 시간을 고려하지 않고 날짜 시간 열별로 그룹화하는 방법

제품 주문이 많으며 날짜별로 그룹화하고 해당 날짜의 수량을 합산하려고합니다. 시간을 고려하지 않고 월 / 일 / 년으로 그룹화하려면 어떻게해야합니까?

3/8/2010 7:42:00 와 그룹화해야합니다 3/8/2010 4:15:00



답변

값을 Date사용자 그룹 의 유형으로 캐스트 / 변환 합니다 .

GROUP BY CAST(myDateTime AS DATE)


답변

GROUP BY DATEADD(day, DATEDIFF(day, 0, MyDateTimeColumn), 0)

또는 SQL Server 2008 부터는 Date @Oded가 제안한대로 간단히 캐스팅 할 수 있습니다 .

GROUP BY CAST(orderDate AS DATE)


답변

Sql 2008 이전 날짜 부분을 제거하여 :

GROUP BY CONVERT(CHAR(8),DateTimeColumn,10)


답변

GROUP BY DATE(date_time_column)


답변

다음은 시간 부분이없는 특정 날짜의 레코드 수를 계산해야 할 때 사용한 예입니다.

select count(convert(CHAR(10), dtcreatedate, 103) ),convert(char(10), dtcreatedate, 103)
FROM dbo.tbltobecounted
GROUP BY CONVERT(CHAR(10),dtcreatedate,103)
ORDER BY CONVERT(CHAR(10),dtcreatedate,103)


답변

다음은 오라클에서 잘 작동하는 예입니다.

select to_char(columnname, 'DD/MON/yyyy'), count(*) from table_name group by to_char(createddate, 'DD/MON/yyyy');


답변

CAST 날짜 / 시간 필드

select  CAST(datetime_field as DATE), count(*) as count from table group by CAST(datetime_field as DATE);