我想从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 '");发布于 2014-04-10 09:46:47
您可以在mysql中这样做
`Updatedate` < DATE(NOW() - INTERVAL 30 DAY)或
`Updatedate` < DATE_SUB(CURDATE(), INTERVAL 30 DAY)为瓦古尔
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)") ;发布于 2014-04-10 09:45:07
我喜欢做这样的事情:AND UpdateDate > NOW() - INTERVAL 30 DAY AND UpdateDate < NOW()。
发布于 2014-04-10 09:50:35
如果您的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();https://stackoverflow.com/questions/22984281
复制相似问题