2011-03-22 10 views
2

지난 1 일 동안 만 입력 된 행을 원합니다.MySQL에서 두 날짜 사이의 행을 반환하십시오.

나는 YYYY-MM-DD을 저장하는 날짜 열을 가지고 있으며 사용자가이 형식으로보고 싶은 날짜를 보내도록 허용합니다. yyymmdd 어떻게이 데이터를 사용하여 전날에만 제한 할 수 있습니까?

나는 그것이 BETWEEN 키워드와 관련이 있다고 생각 하겠지만 그것을 이해할 수는 없다.

+0

이전 날 = 어제 또는 ('yyyymmdd' - 1 일)? – jgauffin

답변

5

이 쿼리 :

SELECT * 
FROM mytable 
WHERE mydate >= STR_TO_DATE('110321', '%y%m%d') - INTERVAL 1 DAY 
     AND mydate < STR_TO_DATE('110321', '%y%m%d') 

는 MySQL의 설명서에서 Mar 20, 2011

+0

하지만 'STR_TO_DATE ('$ testDate ','% y % m % d ')'를 사용하면 문자열 '110321'을 사용하면이 기능이 작동하지만 $ testDate = $ _POST [ ' 날짜']; $ testDate = (string) $ testDate); $ testDate = YYYYMMDD의 형식 – nhunston

+0

@Herly : 네 자리 연도 동안'% Y % m % d' (대문자'Y' 참고)을 사용하십시오. – Quassnoi

+0

YYMMDD 대신 YYYMMDD를 사용했기 때문에 신경 쓰지 마라. 당신의 도움을 주셔서 감사합니다. – nhunston

4
SELECT * from TABLE_NAME WHERE ROW_DATE BETWEEN '2011-03-20' AND '2011-03-21' 
+0

이것은 '2011-03-21 00 : 00 : 00'에 대한 레코드도 반환합니다. – Quassnoi

0

에 대한 (here)를 모든 레코드를 반환은 :

 
SELECT something FROM tbl_name WHERE DATE_SUB(CURDATE(), INTERVAL 1 DAY) <= date_col; 
0
SELECT * FROM YourTable WHERE date_column = DATE_ADD(CURDATE(), INTERVAL -1 DAY) 

이 모든 행을 반환 에 어제.

관련 문제