2014-07-08 1 views
1

나는 날짜를 저장하는 데 사용하는 문자열 필드가있는 MS 액세스 테이블이 있습니다. 날짜 형식을 사용하지 않을 이유가 있습니다. 두 날짜 사이의 테이블 행을 선택하는 방법이 있습니까? 다른 사람의 사이에서MS Access Table에서 두 날짜 사이를 선택 하시겠습니까?

select * from audience where Format(auddate, "dd/MM/yyyy") between #01/06/2014# and #01/08/2014# 
select * from audience where Format(auddate, "dd/MM/yyyy") > #01/06/2014# and Format(auddate, "dd/MM/yyyy") > #01/08/2014# 

그리고 난 어떤 의미가 결과를 얻을 :

AudDate
25/06/모든 것을 사촌 내가 여기 내가 뭘하려, 그것은 년 일 개월 혼란, 제대로 작동 나던 시도 2014
18/09/2012
2012년 12월 11일
28/01/2013
08/02/2011
13/10/2011

미리 감사드립니다.

+1

날짜를 char로 저장하는 이유를 검토 할 시간. –

+1

그리고 일 년 형식을 사용하지 마십시오. 매우 위험합니다. 사용하는 년 월 일. – Fionnuala

+0

당신은 둘 다 맞습니다, 지금은 이해가 안됩니다, 조언을 주셔서 감사합니다 :) – user3715595

답변

1

CDate()을 시도하여 문자열을 날짜로 변환하십시오.

select * from audience 
where CDate(audate) between #01/06/2014# and #01/08/2014#; 

에서는 CDate이 형식은 날짜를 구축하는 DateSerial (년, 월, 일)를 사용할 수 있습니다를 reconize하지 않기 때문에 작동하지 않는 경우

. 년, 월 및 일 인수를 작성하려면 mid $ 및 Cint()를 사용해야합니다. 다음과 같은 형식으로 'yyyy-mm-dd'형식으로 표시됩니다.

DateSerial(CInt(mid(audate, 1, 4)), CInt(mid(audate, 6, 2)), CInt(mid(audate, 9, 2)) 

희망이 있습니다.

관련 문제