我想将数据库中的记录从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
格式
现在有人能怎样做到这一点?
感谢。
答案 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()