나는 두 개의 필드와 테이블이 - datetime
와 int
. 나는 datetime
시간과 분을 무시하고 날짜에만 그룹을하고 싶다 . SELECT
문은 하루의 INT의 합에 매핑되는 날짜를 반환해야합니다.
답변:
SELECT CAST(Datetimefield AS DATE) as DateField, SUM(intfield) as SumField
FROM MyTable
GROUP BY CAST(Datetimefield AS DATE)
select convert(convert(int, getdate()), datetime)
잘못된 구문 오류와 함께 실패
그가 사용하는 SQL 서버의 버전을 지정하지 않았기 때문에 ( date
유형은 2005에서 사용할 수 없음) 다음을 사용할 수도 있습니다.
SELECT CONVERT(VARCHAR(10),date_column,112),SUM(num_col) AS summed
FROM table_name
GROUP BY CONVERT(VARCHAR(10),date_column,112)
DATEADD(dd, DATEDIFF(dd, 0, date_field),0)
이 작업을 수행해야하는 옵션을 조사했지만 사용하는 방법이 가장 간단하다고 생각합니다.
SELECT COUNT(*),
DATEADD(dd, DATEDIFF(dd, 0, date_field),0) as dtgroup
FROM TABLE
GROUP BY DATEADD(dd, DATEDIFF(dd, 0, date_field),0)
ORDER BY dtgroup ASC;
-나는 이것을 데이터 유형으로 좋아하고 형식은 날짜 시간 데이터 유형과 일치합니다.
;with cte as(
select
cast(utcdate as date) UtcDay, DATEPART(hour, utcdate) UtcHour, count(*) as Counts
from dbo.mytable cd
where utcdate between '2014-01-14' and '2014-01-15'
group by
cast(utcdate as date), DATEPART(hour, utcdate)
)
select dateadd(hour, utchour, cast(utcday as datetime)) as UTCDateHour, Counts
from cte