Php 在上周内获取MySQL数据库条目

Php 在上周内获取MySQL数据库条目,php,mysql,Php,Mysql,我正在使用PHP和MySQL开发一个web应用程序。用户可以在其中执行活动,这些活动将记录到一个数据库中,其中包含日期和执行活动的用户。我需要一个查询来查找给定用户在上周完成的所有活动(日期列是unix时间戳)。这是您需要的查询。 用实名替换tableName和TimeColumn SELECT * FROM tableName WHERE timeColumn > UNIX_TIMESTAMP() - 24 * 3600 * 7 and UserName = 'givenUserName

我正在使用PHP和MySQL开发一个web应用程序。用户可以在其中执行活动,这些活动将记录到一个数据库中,其中包含日期和执行活动的用户。我需要一个查询来查找给定用户在上周完成的所有活动(日期列是unix时间戳)。

这是您需要的查询。 用实名替换tableName和TimeColumn

SELECT * FROM tableName WHERE timeColumn > UNIX_TIMESTAMP() - 24 * 3600 * 7 and UserName = 'givenUserName'

这是您需要的查询。 用实名替换tableName和TimeColumn

SELECT * FROM tableName WHERE timeColumn > UNIX_TIMESTAMP() - 24 * 3600 * 7 and UserName = 'givenUserName'
试试这个

       $lastWeek=strtotime("-1 week");         
         $lastWeekActivityQuery="SELECT * FROM activity WHERE activityDate BETWEEN '$lastWeek' AND NOW() ORDER BY activityDate DESC LIMIT 100 ";
         $result=mysql_query($lastWeekActivityQuery);
利用以时间戳格式存储日期的事实,尝试以下操作

       $lastWeek=strtotime("-1 week");         
         $lastWeekActivityQuery="SELECT * FROM activity WHERE activityDate BETWEEN '$lastWeek' AND NOW() ORDER BY activityDate DESC LIMIT 100 ";
         $result=mysql_query($lastWeekActivityQuery);
利用以时间戳格式存储日期这一事实将有助于满足您的需要。考虑到你的一周从周一开始,这应该可以做到:

$referenceDate = time();
$lastWeek = date('-7 days', $referenceDate);

if (date('w') != 1) {
  $lastWeekBegins = date('last Monday', $lastWeek);
} else {
  $lastWeekBegins = $lastWeek;
}

if (date('w') != 0) {
  $lastWeekEnds = date('next Sunday', $lastWeek);
} else {
  $lastWeekEnds = $lastWeek;
}

$query = "SELECT * FROM activity WHERE date >= '{$lastWeekBegins}' AND date <= '{$lastWeekEnds}'";
$referenceDate=time();
$lastWeek=日期(“-7天,$referenceDate”);
如果(日期('w')!=1){
$lastWeekBegins=日期('last周一',$lastWeekBegins);
}否则{
$lastWeekBegins=$lastWeek;
}
如果(日期('w')!=0){
$lastWeekEnds=日期(下周日,$lastWeekEnds);
}否则{
$lastWeekEnds=$LastWeekend;
}
$query=“SELECT*FROM activity WHERE date>='{$lastWeekBegins}'和date使用将帮助您满足您的需要。考虑到您的一周从周一开始,这应该可以做到:

$referenceDate = time();
$lastWeek = date('-7 days', $referenceDate);

if (date('w') != 1) {
  $lastWeekBegins = date('last Monday', $lastWeek);
} else {
  $lastWeekBegins = $lastWeek;
}

if (date('w') != 0) {
  $lastWeekEnds = date('next Sunday', $lastWeek);
} else {
  $lastWeekEnds = $lastWeek;
}

$query = "SELECT * FROM activity WHERE date >= '{$lastWeekBegins}' AND date <= '{$lastWeekEnds}'";
$referenceDate=time();
$lastWeek=日期(“-7天,$referenceDate”);
如果(日期('w')!=1){
$lastWeekBegins=日期('last周一',$lastWeekBegins);
}否则{
$lastWeekBegins=$lastWeek;
}
如果(日期('w')!=0){
$lastWeekEnds=日期(下周日,$lastWeekEnds);
}否则{
$lastWeekEnds=$LastWeekend;
}

$query=“SELECT*FROM activity,其中date>=“{$lastWeekBegins}”和date还有很好的函数date\u sub和date\u add

因此,您的查询可以写为

SELECT * FROM tableName WHERE timeColumn > UNIX_TIMESTAMP( date_sub(now(),interval 1 week)) and UserName = 'givenUserName'

还有很好的函数date\u sub和date\u add

因此,您的查询可以写为

SELECT * FROM tableName WHERE timeColumn > UNIX_TIMESTAMP( date_sub(now(),interval 1 week)) and UserName = 'givenUserName'