选择过去7天内添加的数据

时间:2014-03-20 18:05:25

标签: php mysql

我有一张表格,其中时间是日期类型。我想选择过去7天添加的所有记录,然后将它们放入xml文件中。我可以选择所有数据并在没有WHERE语句的情况下输出。

以下是代码:

$query_feed = "SELECT * FROM keysound_data WHERE time >=DATE_SUB(CURDATE(), INTERVAL 7 DAY AND time <= CURDATE()";
$feed = mysql_query($query_feed, $dconn) or die(mysql_error());
$row_feed = mysql_fetch_assoc($feed);
$totalRows_feed = mysql_num_rows($feed);



echo'<items>';
while ($row_feed = mysql_fetch_assoc($feed)){
            echo'

        <item>
            <name>'.$row_feed['Name'].'</name>
            <email>'.$row_feed['email'].'</email>
            <date>'.$row_feed['Date'].'</date>
            <description>'.$row_feed['Make'].' '.$row_feed['Model'].' '.$row_feed['Type'].'</description>
            <logon>'.$row_feed['Logon'].'</logon>
            <category>'.$row_feed['Type'].'/'.$row_feed['Make'].'</category>
            <product_search_code>'.$row_feed['Product_search_code'].'</product_search_code>
            <order_ref>'.$row_feed['Invoice'].'</order_ref>
            <product_link>'.$row_feed['Product_link'].'</product_link>
            <customer_ref>'.$row_feed['Invoice'].'</customer_ref>
            <amount>'.$row_feed['Price'].'</amount> 
            <currency>GBP</currency>
        </item>'; 
 }
 echo '</items>';

不确定出了什么问题。欢迎任何帮助

3 个答案:

答案 0 :(得分:0)

你错过了一个结束括号。

试试这个 -

time >=DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND time <= CURDATE()

答案 1 :(得分:0)

您在SQL中错过了一个括号以关闭DATE_SUB功能。

试试这个:

SELECT * 
FROM keysound_data 
WHERE 
    time >=DATE_SUB(CURDATE(), INTERVAL 7 DAY)
    AND time <= CURDATE()

更好的是,您可以使用BETWEEEN来优化您的查询:

SELECT * 
FROM keysound_data 
WHERE 
    time BETWEEN (CURDATE() - INTERVAL 7 DAY) AND CURDATE()

编辑:正如@ spencer7593注意到的那样,应使用CURDATE() - INTERVAL 7 DAY代替DATE_SUB(CURDATE(), INTERVAL 7 DAY)来进行更好的优化。上面的查询已更新,以便利用它。

答案 2 :(得分:0)

SELECT * 来自keysound_data 哪里     时间BETWEEN(现在() - INTERVAL 7天)和现在()