首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP查询无法选择介于1周和2周之间的记录

问PHP查询无法选择介于1周和2周之间的记录
EN

Stack Overflow用户
提问于 2012-08-02 22:45:19
回答 1查看 229关注 0票数 0

我正在尝试从一个MySQL表中选择1到2周前的记录,该表有一个日期列。有一个日期是10天前的,但查询忽略了它。你能帮帮忙吗?下面是我使用的查询:

代码语言:javascript
复制
$week2 = mysql_query("SELECT * FROM apps WHERE (user = '" 
.mysql_real_escape_string($_POST['username']) . "') and date BETWEEN ( DATE_SUB( NOW(), 
INTERVAL 2 WEEK), DATE_SUB( NOW(), INTERVAL 1 WEEK )");

如果我使日期不到一周,我可以选择没有问题的记录:

代码语言:javascript
复制
$week1 = mysql_query("SELECT * FROM apps WHERE (user = '" .
mysql_real_escape_string($_POST['username']) . "') and date > NOW() - INTERVAL 1 WEEK
ORDER BY id DESC limit 1");
EN

回答 1

Stack Overflow用户

发布于 2012-08-02 22:51:00

您错误地使用了BETWEEN。

试一试

代码语言:javascript
复制
DATE BETWEEN x AND y

您还可以传入一个字符串作为日期:

代码语言:javascript
复制
<?php
    $startDate = date("Y-m-d", mktime(0, 0, 0, date('m'), date('d') - 14, date('Y')));
    $endDate = date("Y-m-d", mktime(0, 0, 0, date('m'), date('d') - 7, date('Y')));

    $query = "... AND DATE BETWEEN '" . $startDate . "' AND '" . $endDate . "'";

此外,为了响应tadman的评论,您应该停止使用mysql_*函数。它们正被弃用。请改用PDO或mysqli。如果您不确定要使用哪一个,可以使用read this SO article。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11779971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档