我需要一些简单查询的帮助。我想从本周日期的表中选择数据,但我不想要今天的日期记录。所以,如果今天是星期一,那么我只想要周二到周五的数据。
这是我最好的尝试。
SELECT *
FROM data
WHERE date > DATE_SUB(NOW(), INTERVAL 1 WEEK)
我该如何改进?
答案 0 :(得分:1)
您可以使用between
和subdate
SELECT * FROM `data` WHERE `date`
BETWEEN SUBDATE(CURDATE(), 7) AND SUBDATE(CURDATE(), 1);
答案 1 :(得分:0)
您想使用CURDATE()
CURDATE()函数返回当前日期。
注意:此函数将当前日期作为“YYYY-MM-DD”格式返回 如果在字符串上下文中使用,如果在a中使用则为YYYYMMDD格式 数字上下文。
和DATE()
DATE()函数从日期或日期时间中提取日期值 表达
SELECT * FROM data WHERE date > DATE_SUB(NOW(), INTERVAL 1 WEEK) AND DATE(date) < CURDATE();
这将有效地将您的数据转换为YYYY-MM-DD,并与今天的YYYY-MM-DD进行比较
答案 2 :(得分:0)
你可以在这里使用,也可以从今天开始使用。
SELECT * FROM data WHERE date BETWEEN DATE_SUB(NOW(), INTERVAL 1 WEEK) AND DATE_SUB(CURDATE(), INTERVAL 1 DAY)
请注意,我使用CURDATE()
代替NOW()
,因为curdate只包含没有时间的日期。