2009-10-02 5 views
2

Access에 날짜/시간 필드가 있고 특정 연도에있는 모든 항목을 찾아야하는 경우 ... 2009 필드를 설정하면 MM/DD/YYYY로까지 어떻게 본질적으로 할 쿼리를 할 것 /2009/와일드 카드 월/일을 허용하는 SQL 쿼리 특정 연도

갱신 도움을 모두 주셔서 감사합니다,하지만 난 문제가 내가 가지 동적으로 구성 할거야 것을 추측 ASP에서 내 SQL 문.

"SELECT * FROM database WHERE (datecolumn LIKE " & string & ")" 

여기서 문자열은 'DD/MM/YYYY'로 구성된 문자열을 반환합니다. 사용자가 3 개의 입력란 중 아무 것도 입력하지 않으면 해당 부분이 와일드 카드 인 특정 쿼리를 수행해야합니다. 하루에 입력하지 않으면 기본적으로 다음과 같이 입력해야합니다.

"SELECT * FROM database WHERE (datecolumn LIKE "*/MM/YY")" 

.... 마이크로 소프트 Access에서

답변

5

방법에 대한

WHERE MyDate >= '1/1/2009' AND MyDate < '1/1/2010' 
+0

... 그리고 MyDate <1/1/2010 또는 31 번째를 잃어라 – Paul

+0

@ Paul - 기술적으로는 올바르지 만 여러분의 것이 최선입니다. 나는 시간 : 분 : 초 모두 모두 0을 포함한다는 위험한 가정을하고 있습니다. 그에 대한 나의 대답이 편집되었습니다. –

+1

+1 (적어도 Sybase에서는) year() 또는 where 절의 필드에 다른 함수를 사용하면 해당 필드의 올바른 색인이 사용되지 않기 때문입니다. – DVK

-1

OTTOMH

SELECT * FROM Table WHERE DatePart ("yyyy", YourDatetimeColumn) = 2009 
+0

무엇보다도, 그것은 인덱스를 사용하지 않기 때문에이 나쁜 대답을하고, 두 번째는 데이터베이스 - 아니다 엔진 불가 지론. –

+0

인덱스 - 당신 말이 맞아. DB 엔진 불가지론 자 - LOL! 질문은 "ACCESS"에서 지정합니다 - 그는 Access 관련 쿼리를 사용해야합니다! –

3

당신의 일을하지 않는 hould Year() 기능을

몇 가지 예 사용할 수 있습니다 : 귀하의 필드가 예를 들어 "MyDate가"호출하면

Year (#05/05/1985#)  returns 1985 
Year (#17/07/2005#)  returns 2005 

을, 당신과 같이 2009 년에 모든 것을 선택하는 쿼리를 만들 수 있습니다

SELECT * FROM myTable WHERE Year(myDate) = 2009 

이 기능은 MS Access와 SQL Server에서 모두 사용할 수 있습니다 (관심이있는 경우).

자세한 내용은 일부 링크 :

Access: Year Function
Year Function
YEAR (Transact-SQL)

+0

@ 밥 - 원래 질문은 Microsoft Access라고 가정하는 Access를 언급합니다. (즉, "Access에 날짜/시간 필드가있는 경우")! – CraigTP

+0

이것은 처음에는 인덱스를 사용하지 않으며 두 번째로는 데이터베이스 엔진에 의존하지 않기 때문에 좋지 않은 대답입니다. –

+0

@ David - 데이터베이스의 불가지론은 원본 질문이 MS Access의 사용을 명확하게 나타 내기 때문에 전적으로 관련이 없습니다. 인덱스를 사용하지 않는 Year() 함수에 대해서는 올바르지 만 쿼리 질문자가 쿼리하는 데이터의 범위를 명확하게 밝히지 않았기 때문에 문제가 될 수도 있고 아닐 수도 있습니다. 예를 들어, "와일드 카드 일/월"이있는이 쿼리는 <100 행이있는 테이블에 대해서만 수행됩니다. 색인을 사용하면 도움이되지만,이 경우에는 꼭 필요한 것은 아닙니다. 또한 플랫폼이 MS Access이기 때문에 성능이 최우선 순위가 아니라고 안전하게 가정 할 수 있습니다. – CraigTP

0
WHERE Year(DateColumn) = 2009 
+0

이것은 처음에는 인덱스를 사용하지 않으며 두 번째로는 데이터베이스 엔진에 의존하지 않기 때문에 좋지 않은 대답입니다. –

+0

@David : 나는 인덱스 부분에 대해별로 생각하지 않았고 OP는 MS-Access를 원합니다. 데이터베이스가 아닌 모드에 대한 질문을 어떻게 생각하게 만드는지 잘 모르십니까? – shahkalpesh

+0

@David : 또한 모든 사람들의 대답을 싫어하는 대신 답을 얻는다면 좋았을 것입니다. 영업 담당자는 실적에 대해 어디에서 이야기합니까? – shahkalpesh