2010-03-26 12 views
1

Access 2007 데이터베이스에 테이블이 있습니다. 모든 필드는 텍스트 형식입니다. where 절을 사용하여 다음을 수행 할 수 있습니까? 그렇다면 어떻게?날짜 범위로 검색하는 SQl 쿼리

(ColumnDate 2010 년 3 월 26 일 및 19 일 사이) 표에서
  • SELECT *

일반적인 < < = 사업자 (ColumnAge 25 사이 40) 표에서

  • SELECT * 작동하지 않는 것 같습니다.

    감사합니다,

  • 답변

    5
    SELECT * from Table1 WHERE (CDATE(ColumnDate) BETWEEN #03/26/2010# AND #03/19/2010#) 
    SELECT * from Table1 WHERE (CINT(ColumnAge) between 25 and 40) 
    

    날짜는 #MM/DD/YYYY## 심볼 사이의 액세스에 표시됩니다. 날짜 필드로 날짜를 실제로 저장해야합니다.

    +0

    고마워, 25 세부터 40 세까지 모두 포함 된 사람들을 검색해야합니다. – tecno

    +0

    'BETWEEN'결과에는 두 가지 범위 값이 모두 포함됩니다. 그 사람들은 25 세에서 40 세 사이의 사람들이되어야합니다. – Codesleuth

    +0

    감사합니다. 다시 한번 감사드립니다. – tecno

    1
    SELECT * from Table1 WHERE ColumnDate between '2010-03-26' and '2010-03-19' 
    SELECT * from Table1 WHERE ColumnAge between 25 and 40 
    

    내가 Access를 사용 YMMV 그렇게하지 않습니다.

    +0

    Access를 사용하지 않고 Access에서 실행되지 않는 SQL을 게시했습니다. 열이 yyyy-mm-dd로 저장된 모든 날짜를 가지나 그렇지 않은 경우 첫 번째 열이 작동합니다. 원래 질문은 모든 필드가 텍스트라고했기 때문에 두 번째는 작동하지 않습니다. –

    1

    기능으로 ColumnDate을 실제 날짜/시간으로 변환 해보세요. int 로의 변환은 CInt으로 수행 할 수 있습니다.

    나는 Access를 사용하지 않으므로, 상식 일뿐입니다.

    +0

    이러한 inbuilt SQL 함수가 있습니까? 그렇다면 쿼리에서 어떻게 호출됩니다. 예를 들어 주시면 감사하겠습니다. – tecno

    +0

    실제로 Anton Gogolev의 대답은 나를 샘플에 넣으라고 상기시켜주었습니다. 그래서, 그는 내게 upvote받을 가치가 있어요 :) – Codesleuth

    0

    Mr.David-W-Fenton은 Marcelo의 첫 번째 SELECT * from Table1 WHERE ColumnDate between '2010-03-26' and '2010-03-19'이 작동하지 않으며 그 원인을 제안하는 것이 잘못되었다고 말합니다. 날짜의 문자열 표현 주위에 따옴표가 있기 때문에 절이 올바르지 않습니다. 날짜 형식은 꽤 괜찮습니다. 그래서 적절한 솔루션으로

    SELECT * from Table1 WHERE CDATE(ColumnDate) between #2010-03-26# and #2010-03-19#

    가정 것입니다.

    +0

    휴, 네 말이 맞아. 방금 마르셀로를 따라 갔어. 고마워, 쿼리 수정. –