在MySQL中返回两个日期之间的行

在MySQL中返回两个日期之间的行,mysql,Mysql,我想删除仅在最近1天内输入的行 我有一个日期列,用于存储YYYY-MM-DD,我允许用户以这种格式发送他们想要查看的日期yyymmd我如何使用此数据将其限制为仅前一天 我想这与BETWEEN关键字有关,但我想不出来。这个查询: SELECT * from TABLE_NAME WHERE ROW_DATE BETWEEN '2011-03-20' AND '2011-03-21' SELECT * FROM mytable WHERE mydate >= STR_TO_DAT

我想删除仅在最近1天内输入的行

我有一个日期列,用于存储
YYYY-MM-DD
,我允许用户以这种格式发送他们想要查看的日期
yyymmd
我如何使用此数据将其限制为仅前一天

我想这与
BETWEEN
关键字有关,但我想不出来。

这个查询:

SELECT * from TABLE_NAME WHERE ROW_DATE BETWEEN '2011-03-20' AND '2011-03-21'
SELECT  *
FROM    mytable
WHERE   mydate >= STR_TO_DATE('110321', '%y%m%d') - INTERVAL 1 DAY
        AND mydate < STR_TO_DATE('110321', '%y%m%d')
选择*
从mytable
其中mydate>=截止日期('110321','%y%m%d')-间隔1天
和mydate
将返回MySQL手册()中2011年3月20日的所有记录:

从tbl_name WHERE DATE_SUB(CURDATE(),间隔1天)中选择某些内容
这将返回今天和昨天的所有行。

前一天=昨天或(
yyyymmdd
-一天)?这将返回
2011-03-21 00:00:00
的记录。如果我使用字符串“110321”,这对我有效,但是如果我使用“STR_TO_DATE('$testDate','%y%m%d')”,它不会$testDate=$POST['DATE],这对我无效$testDate=(字符串)$testDate);$testDate的格式=YYYYMMDD@Herly:使用
%Y%m%d
(注意大写的
Y
)四位数年份。无论如何,这是因为我使用的是YYMMDD而不是YYMMDD。谢谢你的帮助。 SELECT something FROM tbl_name WHERE DATE_SUB(CURDATE(), INTERVAL 1 DAY) <= date_col;
SELECT * FROM YourTable WHERE date_column = DATE_ADD(CURDATE(), INTERVAL -1 DAY)