2017-02-26 85 views
1

如何僅顯示自最近14天以來未訂購的客戶記錄的一條記錄。 我需要從當前日期中扣除最後一個訂單日期,並僅顯示自14天或更長時間以來沒有訂購的人員。如何獲取最近的記錄並將其日期與當前日期進行比較

注意,日期格式分類數據庫是這樣的:2017年1月25日和數據類型varchr(不能更改),在這裏我的代碼

records

<?php 
    $q_customer = $conn->query("SELECT * FROM customer_order INNER JOIN customer on customer_order.phone= customer.phone GROUP BY customer_order.phone") or die(mysqli_error()); 
    while($f_customer = $q_customer->fetch_array()){ 
?> 
<tr> 
    <td><?php echo $f_customer['phone']?></td> 
    <td><?php echo $f_customer['first_name']?></td> 
    <td><?php echo $f_customer['last_name']?></td> 
    <td><?php echo $f_customer['order_date']?></td> 
</tr> 

<?php 
    } 
?> 
+1

見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-似乎對我來說是一個非常簡單的SQL查詢# – Strawberry

+1

「無法改變它」 - 不幸的是 – Strawberry

回答

1
SELECT c.phone, c.first_name, c.last_name, 
MAX(str_to_date(co.order_date, '%m-%d-%Y')) AS order_date 
FROM customer_order co INNER JOIN customer c on co.phone=c.phone 
GROUP BY c.phone, c.first_name, c.last_name 
HAVING MAX(str_to_date(co.order_date, '%m-%d-%Y')) < DATE_SUB(curdate(), INTERVAL 2 WEEK); 
+0

謝謝,這是工作,但沒有記錄顯示,即使我有超過90個記錄,其中他們的日期 - 當前日期= 14 –

+0

我相信我的日期格式不匹配。我已將連字符更改爲連字符。請使用此更新重試。 – phatfingers

+0

偉大的工作@pfinfingers謝謝你,工作正常 –

1

試試這個:

SELECT * FROM `customer_order` 
INNER JOIN `customer` on `customer_order.phone` = `customer.phone` 
WHERE `order_date` >= DATE_SUB(date_format(`order_date`, '%d/%m/%Y'), INTERVAL 14 DAY) 
GROUP BY `customer_order.phone` 

您可能需要更改

date_format(`order_date`, '%d/%m/%Y') 

,以滿足您的需求。例如,您可能需要將其更改爲

date_format(`order_date`, '%m/%d/%Y') 
相關問題