해당 행 생성의 datetime 정보를 보유한 테이블이 있습니다. 그러나 주어진 시간 프레임에서 하루에 생성 된 수를 계산하려고합니다.
select count(*), DateCreated FROM Stories WHERE DateCreated BETWEEN '2013-03-28' AND '2014-01-07' group by DateCreated;
그러나 DateCreated별로 그룹화되어 있기 때문에 같은 날 여러 스토리가 만들어 졌음에도 불구하고 모든 항목에 대해 1의 개수를 얻습니다. datetime 필드의 시간 부분은 각 필드를 그룹화 할 수있을만큼 고유하게 만듭니다.
datetime의 시간 부분을 무시하고 그룹에서 구분을 위해 날짜를 단독으로 사용하도록 쿼리를 수정할 수있는 방법이 있습니까?
SELECT
NumPerDay = count(*),
DateCreated = cast(DateCreated as Date)
FROM
Stories
WHERE
cast(DateCreated as Date) BETWEEN '2013-03-28' AND '2014-01-07'
GROUP BY
cast(DateCreated as Date)
또는
SELECT
NumPerDay = count(*),
DateCreated = DATE(DateCreated)
FROM
Stories
WHERE
Date(DateCreated) BETWEEN '2013-03-28' AND '2014-01-07'
GROUP BY
DATE(DateCreated)
또는 where 절에서 Datecolumn을 캐스팅하면 사용 가능한 인덱스를 사용할 수 없습니다.
SELECT
NumPerDay = count(*),
DateCreated = DATE(DateCreated)
FROM
Stories
WHERE
DateCreated BETWEEN '2013-03-28 00:00:00' AND '2014-01-07 23:59:59.999'
GROUP BY
DATE(DateCreated)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다