簡體   English   中英

如何在MySQL中獲取0-30天的記錄,30-60和60 -90以及90以上

[英]How to get 0-30 days record, 30-60 and 60 -90 and above 90 in mysql

在我的項目中,我想記錄0-30天,30-60天,60-90天和90以上的記錄。 目前,我獲取0-30天的記錄,如何從mysql數據庫中獲取其余信息。 我在下面附上了我的代碼。 我在codeigniter中做我的項目。

public function outstandingMonth(){
    $query = $this->db->query("SELECT * FROM zemco_tbl_invoice a left join zemco_tbl_payment b on (a.invoice_no=b.payment_invoice_id) WHERE invoice_status = 2 AND invoice_modified_time BETWEEN NOW() - INTERVAL 30 DAY AND NOW()");
}

有人可以幫我解決這個問題嗎,謝謝

這只是在不知道數據庫的確切結構的情況下進行的猜測,但是這樣做不可行嗎?

invoice_modified_time BETWEEN NOW() - INTERVAL 30 DAY AND NOW()

invoice_modified_time BETWEEN (NOW() - INTERVAL 60 DAY) AND (NOW() - INTERVAL 30 DAY)

invoice_modified_time BETWEEN (NOW() - INTERVAL 90 DAY) AND (NOW() - INTERVAL 60 DAY)

等等。

如果您可以將days范圍間隔作為函數的輸入參數傳遞,則可以在查詢中使用它們來獲取記錄。

修改后的查詢如下例所示:

SELECT * FROM zemco_tbl_invoice a 
  left join zemco_tbl_payment b on (a.invoice_no=b.payment_invoice_id) 
 WHERE invoice_status = 2 
   AND invoice_modified_time BETWEEN ( NOW() - INTERVAL $toDays DAY )
                                 AND ( NOW() - INTERVAL $fromDays DAY )

如果要在30到60天之間獲取記錄,則fromDays30toDays為60。則上面的查詢結果如下:

SELECT * FROM zemco_tbl_invoice a 
  LEFT JOIN zemco_tbl_payment b ON a.invoice_no = b.payment_invoice_id 
 WHERE invoice_status = 2 
   AND invoice_modified_time BETWEEN ( NOW() - INTERVAL 60 DAY )
                                 AND ( NOW() - INTERVAL 30 DAY )

您可以根據需要使用方法的輸入參數,並根據需要在查詢中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM