选择今天之前的MYSQL日期

4

我有一个SQL语句,希望能选择至少比今天早七天的所有日期。

我使用的代码如下:

SELECT * FROM letter WHERE letter.l_date > DATE_SUB(CURDATE(), INTERVAL 7 DAY)

但是我没有得到期望的结果。我不明白我做错了什么。能帮我一个忙吗?


你的意思是除了最近7天之外,所有今天之前的日期吗?换句话说,所有早于7天前的日期? - mivk
3个回答

3

如果您需要最近7天的数据,请使用DATE(NOW()) - INTERVAL 7 DAY

SELECT * FROM letter WHERE letter.l_date > DATE(NOW()) - INTERVAL 7 DAY

我需要获取7天前的所有日期。 - Xtern
SELECT * FROM letter WHERE letter.l_date >= DATE(NOW()) - INTERVAL 7 DAY - Abhishek Sharma
1
你能试一下这个查询吗? - Abhishek Sharma
如果您的数据丢失了,那么它就不会存在了吗?我们能看到您的数据吗? - Paul Stanley
字母表包括l_dates:'2015-10-30','2015-10-29','2015-10-28','2015-10-26','2015-10-23'等。但是上述语句也输出了'2015-10-29','2015-10-28'。 - Xtern

3

如果您只想获取最近七天(包括今天)的数据,您需要指定l_date在当前时间之前:

SELECT * FROM letter WHERE letter.l_date < DATE_SUB(CURDATE(), INTERVAL 7 DAY)

我需要所有日期,但不包括从今天起7天的范围内的日期(例如:在“2015-10-24”之前的日期)。换句话说,排除掉从今天起最近7天的日期。 - Xtern
今天之后你还需要它们吗? - Paul Stanley
在今天之前。但不包括从今天开始的7天。 - Xtern
请检查我的编辑,你的大于号应该是小于号。 - Paul Stanley

0

你还可以使用DATEDIFF函数的另一种方式

SELECT * FROM letter WHERE DATEDIFF(NOW(), letter.l_date) > 7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接