MySQL计算最近1年的记录

时间:2014-03-17 09:41:49

标签: php mysql sql

我想计算表格的某些列的总和。完全持续1年的总和。因此,一组行可能需要每日计算。我使用以下MySQL查询来获取旧记录。

//php variable
$timezoneName = timezone_name_from_abbr("PST");
date_default_timezone_set("$timezoneName");
$now = date('Y-m-d H:i:s');

SELECT col1,col2 FROM table1
WHERE modificationDate < '$now' - INTERVAL 1 YEAR

这里使用PHP变量来设置PST时区的时间。否则我可能使用了MySQL的now()函数。

我的挑战是,旧记录不会从数据库中删除,并且每天旧记录列表都在增加。所以我想要一个查询来获得1岁和大于(1年和1天更旧)的记录。

我试过这样,但没有工作

SELECT col1,col2 FROM table1
WHERE (modificationDate < '$now' - INTERVAL 1 YEAR) 
AND (modificationDate >= ('$now' - INTERVAL 1 DAY) - INTERVAL 1 YEAR)

任何解决方案?

由于

2 个答案:

答案 0 :(得分:1)

最后我用以下逻辑得到了所需的输出。

$timezoneName = timezone_name_from_abbr("PST");
date_default_timezone_set("$timezoneName");
$lastYear = date("Y-m-d",strtotime("-1 year"));

SELECT col1,col2 FROM table1
WHERE modificationDate LIKE '$lastYear%';

现在能够获得特定的旧数据

感谢所有人,感谢您的宝贵意见。

答案 1 :(得分:0)

尝试这样的事情

  

UPDATE表SET日期= DATE_ADD(日期,间隔1年)