【问题标题】:SQL Select records for this week and the next weekSQL 选择本周和下周的记录
【发布时间】:2014-04-30 17:40:11
【问题描述】:

http://gyazo.com/bc0f6794c260fdb97ee79e016abd0a11

dag 列表示日期或日期,并包含日期时间。 如何使用 dag 列选择本周和下周的记录?

我在 PHP 中有以下工作代码,但它也选择了去年的十几条记录,但我不想要。

$sth = $dbh -> prepare('SELECT * FROM ' . $cfg -> db_user . '_veld_wedstrijden WHERE thuisteam LIKE "'.$cfg -> db_user.'%" OR uitteam LIKE "'.$cfg -> db_user.'%" AND dag >= CURDATE() + INTERVAL 7 DAY ORDER BY dag ASC');
$sth -> execute();

查询的最后一位是按日期选择它们的位置。

【问题讨论】:

  • 你的第一个 LIKE 是捡旧记录的东西
  • 啊,我明白我在这里做错了什么,谢谢。
  • 没问题,如果它解决了问题,那么欢迎您自己回答这个问题或考虑查看@Tim Dev 的答案。

标签: php sql pdo


【解决方案1】:

首先确保在(thuis OR uit) 选择周围使用括号。

所有当前日期操作的第二个操作是:获取日期大于(今天 + 7 天)的所有匹配项。

你在标题中说你想要本周和下周的所有比赛。所以从今天到 14 天。

像这样使用between

SELECT * FROM ' . $cfg -> db_user . '_veld_wedstrijden 
WHERE 
    ( thuisteam LIKE "'.$cfg -> db_user.'%"  OR uitteam LIKE "'.$cfg -> db_user.'%")
AND 
    dag BETWEEN CURDATE() AND CURDATE() + INTERVAL 2 WEEK

【讨论】:

  • 确实,非常感谢,今天学到了关于括号和括号的新知识:)
  • 请注意 - 最好将日期传递给查询,以便正确缓存。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多