我的数据具有日期(Ymd H:i:s)列(类型为datetime)。我想选择输入日期之前1周内的所有记录(在下面的示例中:2011-09-17
00:00:00,但是遇到了一些麻烦。这是我得到的:
SELECT * FROM emails WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), 1 week))
我究竟做错了什么?谢谢
我想你错过INTERVAL
在前面1 week
:
SELECT *
FROM emails
WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), INTERVAL 1 week));
这是我运行的查询,适用于该DATE_SUB()
零件:
SELECT *
FROM wp_posts
WHERE post_modified > DATE_SUB(CURDATE(), INTERVAL 4 WEEK);
您可以使用负值来执行“给定日期前N周”的查询,这样可以正常工作:
SELECT *
FROM wp_posts
WHERE post_modified > DATE_SUB(CURDATE(), INTERVAL -1 WEEK);
要么:
SELECT *
FROM emails
WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), INTERVAL -1 week))
问题内容: 我在 sqlfiddle 上有结构表: 我想在本周获得记录,例如,如果现在是2013年11月21日,我希望将2013年11月18日至2013年11月24日的所有行(在星期中) 现在我看下一个算法: 获得工作日 计算多少天前是星期一 计算星期一的日期 计算周日的未来日期 要求日期 请告诉我,是否存在一个较短的算法(最好在查询MySQL中)? 添加的问题是: 为什么 此查询 选择日期记录,
问题内容: 我有一张桌子,我想在该表格的基础上从每个组中获取前N个项目。如果我设置了那将从每个组中选择第一行,或者如果我设置了那那将从每个组中选择前5行。请帮我。 问题答案: 有多种方法可以做到这一点。这是一个使用相关子查询的查询:
问题内容: 我有一个充满很多行的表,我需要选择到目前为止不到一年的所有行。 表格(称为)具有名为的列,该列确定下订单的时间。 我该如何选择从现在到一整年以前所有的记录? 问题答案:
问题内容: 我有一个mysql数据库,其中有一个TIMESTAMP字段,标题为date。如何选择月份为当前月份的所有字段? 提前致谢! 问题答案: 更新 一种更好的索引友好型查询日期范围内数据的方法 注意: 您不对列数据应用任何函数,而是在条件的右侧进行所有必要的计算(它们是常量,并且仅在执行后评估一次)。这样,您就可以使MySQL受益于该列上可能具有的索引。 原始答案: 注意: 尽管此查询产生正
问题内容: 我想看看如何只获得具有唯一城市的唯一行/记录,而不关心是否是首都,例如: 只会返回一条记录。 我累了像这样的东西,但是没用 谢谢… 问题答案: 您可以使用以下仅用于mysql的技巧: 这将返回 遇到的第一行 的每个独特的价值和。 其他数据库将抱怨您的分组依据中未列出未聚合的列或此类消息。 已编辑 以前我声称不使用分组列上的函数将返回所有大小写的变化,但这是不正确的- 感谢SalmanA
问题内容: 嗨,我有一个带有日期字段和一些其他信息的表。我想选择过去一周(从星期日开始的一周)中的所有条目。 表值: 我想选择上周的所有ID,预期输出为5、6、8 (ID 2不在上周,ID 15在本周。) 怎么写和SQL Query相同。 问题答案: