簡體   English   中英

從 MySql 返回少於 60 天的行

[英]Returning Rows from MySql less than 60 Days Old

我有以下查詢返回表中的所有行:

$query="SELECT * FROM $tbl_name ORDER BY job_id DESC";

我想通過少於 60 天的條目來限制這些結果。 我使用以下方法記錄輸入數據庫的日期:

$dt=date('d M Y');

這存儲在名為“日期”的列中。

有人可以幫我修改我的查詢嗎?

謝謝丹

    $query="SELECT * FROM $tbl_name WHERE DATEDIFF(CURDATE(), STR_TO_DATE(date,'%d %M %Y')) <60 ORDER BY job_id DESC"

如果日期像數據庫中的 varchar 一樣存儲,您的查詢應該是:

SELECT * 
FROM $tbl_name 
WHERE TO_DATE(date, 'dd MON yyyy') >= DATE_SUB(CURDATE(), INTERVAL 60 DAY)
ORDER BY job_id DESC

如果日期像日期一樣存儲,請使用:

SELECT * 
FROM $tbl_name 
WHERE date >= DATE_SUB(CURDATE(), INTERVAL 60 DAY)
ORDER BY job_id DESC
SELECT * FROM $tbl_name FROM_UNIXTIME(date) >= DATE_SUB(CURDATE(), INTERVAL 60 DAY) ORDER BY job_id DESC

您可以用作

select  b.mobile_number, max(b.bill_number), max(b.created_on), c.name from MasterBill as b, MasterCustomer as c  WHERE b.created_on < NOW() - INTERVAL 60 DAY and b.mobile_number = c.mobile_number group by mobile_number;

考慮手機號碼是與客戶主控和計費的關鍵綁定數據。

試試這個(未經測試)

SELECT * FROM $tbl_name WHERE date >= DATE_SUB(CURDATE(), INTERVAL 60 DAY) ORDER BY job_id DESC

暫無
暫無

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

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