你好,我有一个小项目,其中包含不同的新闻。所有的新闻数据都存储在mysql数据库中,并添加了新闻日期。现在我想找一个最近4周的新闻。我用过这个查询,但似乎我得到错误的输出。任何帮助吗?谢谢你!下面是查询:
SELECT ad_news.datum_archiv, ad_news_texte.headline
FROM ad_news_texte
INNER JOIN ad_news_oe ON ad_news_texte.news_id = ad_news_oe.id_ad_news
INNER JOIN ad_news ON ad_news.id
WHERE DATEDIFF( now( ) , ad_news.datum_archiv ) >28;
更改最后一个WHERE
条件
WHERE DATEDIFF( now( ) , ad_news.datum_archiv ) >28;
WHERE ad_news.datum_archiv between
curdate() - INTERVAL DAYOFWEEK(curdate())+24 DAY and curdate()
DATEDIFF()
方法返回两个日期之间的天数差。您的查询需要大于28天。但是你的业务逻辑要求它是小于四周的,即小于或等于28天的差值。
你有几个选择:
1)将其更改为小于或等于:
WHERE DATEDIFF( now( ) , ad_news.datum_archiv ) <= 28;
2)使用BETWEEN
子句与DATE_SUB()
方法(日期减法):
WHERE ad_news.datum_arciv BETWEEN NOW() AND DATE_SUB(NOW(), INTERVAL 28 DAY)
还有几种方法可以为猫添加皮肤,但是这些选项中的任何一个都应该得到您想要的输出。