我有一张表格,其中时间是日期类型。我想选择过去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>';
不确定出了什么问题。欢迎任何帮助
答案 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天)和现在()