2016-07-15 1 views
-1

사용자 생일 전후로 모든 기록을 +/- 10 년 동안 받고 싶습니다. 생일 축하 기록을 받으십시오

나는이 SQL 시도 :

SELECT * FROM users 
WHERE cbe_user_birthday - INTERVAL 10 YEARS AND 
    cbe_user_birthday + INTERVAL 10 YEARS 

을 ...하지만이 오류가 반환

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'YEARS AND cbe_user_birthday + INTERVAL 10 YEARS' at line 2

+3

다음 시간은 오류 메시지를 게시,'않아요 매우 helpfull 밤은 work'. [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t 그리고 [** 시작 **] (http : //spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) 질문 품질을 향상시키고 더 나은 답변을 얻는 방법을 배우십시오. –

+0

이 쿼리는 매우 일반적입니다. 'cbe_user_birthday'가'users' 필드라면'WHERE'는 항상'true'입니다. 그러나 이것이 매개 변수라면 원하는 범위의 테이블 필드를 해당 범위와 비교해야한다고 말할 필요가 있습니다. –

+0

귀하의 질문에 오류 메시지가 추가되었습니다. 귀하는 귀하가 가지고있는 유효하지 않은 SQL에 대한 오류 메시지를 받게됩니다. StackOverflow에 게시하는 질문에 이러한 종류의 정보를 추가하면 독자가 많은 도움이됩니다. – trincot

답변

0

그냥 사용하는 WHERE 절에 BETWEEN ... AND를 추가 할 필요를 BETWEEN 및 일부 date functions 사용자의 생일 2001-01-01에있는 경우 예를 들어, 당신은 할 수 :

SELECT * FROM users WHERE cbe_user_birthday BETWEEN 
    DATE_SUB('2001-01-01', INTERVAL 10 YEAR) AND 
    DATE_ADD('2001-01-01', INTERVAL 10 YEAR) 
0

당신은

SELECT * 
FROM users 
WHERE cbe_user_birthday BETWEEN 
     cbe_user_birthday- INTERVAL 10 YEAR AND 
     cbe_user_birthday + INTERVAL 10 YEAR 
+1

이 쿼리는 매우 일반적입니다. 'cbe_user_birthday'가'WHERE'가 항상'true' 인'users' 필드라면 –

+0

그런 쿼리를 사용하는 목적이 무엇일까 궁금합니다. 그것은'SELECT * FROM users WHERE TRUE'와 같지 않습니까? – 1000111