2010-08-17 2 views
2

CURDATE()와 6 주 전에 date_added가있는 모든 행을 테이블에서 선택해야합니다.SQL 기간 쿼리

도와주세요.

+1

어떤 방언의 SQL? –

+0

PHP와 함께 사용하는 MySQL – Gatman

+0

미래에 (태그 외에) 질문이나 제목에 지정해야합니다. SQL의 다른 언어들은 다양한 구문과 기능을 가지고 있기 때문에. –

답변

2
SELECT * 
FROM a_table 
WHERE date_added BETWEEN DATE_SUB(CURDATE(), INTERVAL 6 WEEK) AND CURDATE() 
3
SELECT * 
FROM mytable 
WHERE date_added BETWEEN CURDATE() - INTERVAL 6 WEEK AND CURDATE() 
TABLE_NAME FROM
1
SELECT * FROM table_name WHERE TO_DAYS(NOW()) - TO_DAYS(date_added) <= 42 
+0

하! 42 이유가 * 사용되었습니다! –

+0

주 7 일. 6 주 ... 기능 TO_DAYS 일 함께 작동합니다. – pltvs

+0

+1 @ 알렉산더 : 그는 당신이 42를 얻는 방법을 묻지 않고 있었다, 나는 그가 은하계에 대한 히치하이커의 가이드 (우리 모두가 아니다 : p)의 팬이라고 생각한다. – wimvds

0

SELECT * WHERE (NOW(), DATE_ADDED) DATEDIFF < = 42

0

당신이 일년

select date_format(date, '%u') from tab  
where (date_format(date, '%u')-date_format(now(), '%u'))>6 

에서 날짜를 사용하는 경우 다른 연도의 날짜를 사용하는 경우

다른 연도의 날짜를 사용할 필요가 없습니다. 당신이

select 
date_format(date, '%u') from tab 
where (date_format(date, '%u')-date_format(now(), '%u'))>6 
and 
date_format(date, '%u') from tab 
where (date_format(date, '%Y')-date_format(now(), '%Y'))=0 

당신이 원하는 경우 가입에 쿼리를 최적화 할 수 있습니다 사용할 수 있습니다. 나는 당신이 그것을하는 법을 안다라고 생각한다