我有一个表,其中时间是日期类型。我想选择最近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>';


不知道出了什么问题。任何帮助欢迎

最佳答案

您在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)以获得更好的优化。上面的查询已更新为使用该查询。

关于php - 选择最近7天添加的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22541534/

10-10 14:11
查看更多