2016-10-20 1 views
0

나는 액세스 2010을 사용하고 호출 된 다음 Table1 같은 테이블 (테이블은 엑셀에서 수입하고 날짜 열이 date로 포맷 된)이있어 :DATEVALUE 기능과 그룹으로 : 조건 식에서 데이터 형식이 일치

date      xy 
--------------------------------- 
19.10.2016 14:10:51  jljh 
19.10.2016 13:13:28  kgkhg 
19.10.2016 12:53:15  asd 

나는 Access에서 일반적인 SQL 작업을 수행 할 수 없다는 것을 이미 받아 들였습니다. 그러나 다음과 같은 간단한 지옥 쿼리가 오류 data type mismatch in criteria expression에서 끝나는 이유는 무엇입니까? 먼저

SELECT DateValue(DATE) as dt, COUNT(CSID) 
FROM Table1 
GROUP BY DateValue(DATE) 

답변

0

당신을 테이블은 엑셀에서 가져온 말 :

그런 다음 DATEVALUE 따라서 날짜 구분 기호로 을 허용하지 않습니다. 다시 Excel로 돌아가서 날짜를 잘라내어 다시 다시 가져 오면 내 쿼리가 "정상적인"SQL처럼 실행됩니다. 이 똥보다 더 직관적 인 것은 없습니다.

EDIT : 한편 나는 문제가 무엇인지 알아 냈습니다. 날짜 열에 채워지지 않은 값이있었습니다. 따라서 DateValue은 예외 처리 방법을 알 수 없으므로 예외를 throw해야합니다. 그러나 조금 성가신 점은 group by 문이 없으면이 오류가 발생하지 않는다는 것입니다. 그래서 이번에는 Access의 비난이 50 % 밖에 안되지만 다른 부분은 나에게 :-)

+0

좋습니다. 의견을 보내 주셔서 감사합니다. – Gustav

1

, 당신은 Access에서 "정상적인 SQL의 일을"할 수 있습니다. 그 날입니다 - -

SELECT DateValue(Replace([DATE], ".", "/")) as dt, COUNT(*) 
FROM Table1 
GROUP BY DateValue(Replace([DATE], ".", "/")) 
+0

답장을 보내 주셔서 감사합니다.하지만 작동하지 않습니다. Excel에서 가져 왔기 때문에 날짜 필드이므로 화면의 표현은 중요하지 않습니다.) 'group by '이 없으면 모든 것이 잘 작동하기 때문에 정상적인 것은 아닙니다. 그것은 음란합니다. 좋아, 나는 모욕을 멈추게 될 것이다 .-) – davidhigh

+0

답장을 +1 해 주셔서 감사합니다. – davidhigh

관련 문제