在mysql中选择一周前的记录
我的数据具有日期 (Ymd H:i:s) 列(类型为日期时间)。我想选择我输入的日期之前 1 周的所有记录(在下面的示例中:2011-09-17 00:00:00,但遇到了一些麻烦。这是我得到的:
SELECT * FROM emails WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), 1 week))
我在做什么错了吗?
I have data that has a date (Y-m-d H:i:s) column (the type is datetime). I'd like to select all records from 1 week before a date I enter (in the below example: 2011-09-17 00:00:00, but am having some trouble. Here's what I've got:
SELECT * FROM emails WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), 1 week))
What am I doing wrong? Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为您在
1 周
前面缺少INTERVAL
:这是我运行的查询,它适用于
DATE_SUB()
部分:您可以使用负值来执行“给定日期之前的 N 周”查询,这样类似的操作就可以工作:
或者:
I think you're missing
INTERVAL
at the front of1 week
:Here is a query that I ran that does work for the
DATE_SUB()
part:You can use a negative value to go do a "N weeks before given date" query so something like this would work:
Or:
试试这个,我喜欢坚持使用 DATE_ADD 并且只使用负值。
Try this, I like to stick with DATE_ADD and just use a negative value.