簡體   English   中英

如何在php中獲取更新日期少於30天的所有記錄

[英]How to get all the records whose updated date is less than 30 days in php

我想從mysql數據庫中獲取所有記錄,這些記錄已經在當前日期的30天內更新了他們的記錄,因為我使用了以下查詢,但它無法正常工作。 $ tda是當前日期,$ prevmonth是從當前日期起30天后的日期。 請幫忙。 謝謝。

$da=date('d');
$tda=date('d-m-Y');
$prevmonth = date(''.$da.'-m-Y', strtotime('-1 months'));
$sql_q=executeQuery("select * from ".reg." where 'uid' !=".$_SESSION['uid']." AND Updatedate >= '$prevmonth' AND  Updatedate <='$tda '");

我喜歡這樣做: AND UpdateDate > NOW() - INTERVAL 30 DAY AND UpdateDate < NOW()

如果您的Updatedate列是DATETIME列,那么您可以執行以下操作:

SELECT *
FROM table
WHERE uid <> ?
AND Updatedate >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
AND Updatedate <= NOW();

要么:

SELECT *
FROM table
WHERE uid <> ?
AND Updatedate BETWEEN DATE_SUB(NOW(), INTERVAL 1 MONTH) AND NOW();

或者,如果它是時間戳,那么:

SELECT *
FROM table
WHERE uid <> ?
AND FROM_UNIXTIME(Updatedate) >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
AND FROM_UNIXTIME(Updatedate) <= NOW();

你可以在mysql中做到這一點

`Updatedate` <  DATE(NOW() - INTERVAL 30 DAY)

要么

`Updatedate` <  DATE_SUB(CURDATE(), INTERVAL 30 DAY)

對於Varchar

 STR_TO_DATE(Updatedate, '%Y-%m-%d') <  DATE_SUB(CURDATE(), INTERVAL 30 DAY)

更新:

評論中發布的查詢是錯誤的,應該是

$sql_q=executeQuery("select * from registration
where 
`uid` != ".$_SESSION['uid']." 
AND STR_TO_DATE(Update_date, '%d-%m-%Y') < DATE_SUB(CURDATE(), INTERVAL 30 DAY)") ;

如果您在過去30天內查找數據,那么

$sql_q=executeQuery("select * from registration
where 
`uid` != ".$_SESSION['uid']." 
AND STR_TO_DATE(Update_date, '%d-%m-%Y') >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)") ;

暫無
暫無

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

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