MySQL Query - 记录15天前的End_date到End_date

时间:2015-05-14 05:50:22

标签: php mysql

我想将数据库中的记录从end _date返回到end_date 15天!
我正在寻找最近3天的查询!
然而。我希望你的帮助可以进行查询。它很简单,但我不知道该怎么做。
我写了类似的查询:

SELECT * 
FROM bid_post
WHERE ending_date
BETWEEN DATE_SUB( DATE(`ending_date`) , INTERVAL 15 
DAY ) 
AND ending_date >= CURDATE()

但它不起作用!
数据列是Varchar类型。我将日期存储为YYYY-mm-dd格式

现在有人能怎样做到这一点?

感谢。

2 个答案:

答案 0 :(得分:0)

您永远不应将日期存储为varchar,因为这些不是真实日期,您需要使用mysql本机日期数据类型存储它们。 由于格式为Y-m-d,您可能不需要使用str_to_date函数进行转换,并且可以将查询用作

select * from bid_post 
where
ending_date between date_sub(curdate(),interval 5 day)  and curdate()

这将为您提供过去15天至今的数据。

使用转换为实际日期,您需要str_to_date作为

select * from bid_post 
where
str_to_date(ending_date,'%Y-%m-%d') between date_sub(curdate(),interval 5 day)  and curdate() ;

<强> DEMO

答案 1 :(得分:0)

请尝试使用此查询

SELECT *
FROM bid_post
WHERE ending_date between DATE_SUB( CURDATE() , INTERVAL 15 DAY )
AND CURDATE()