MySQL计算最近1年的记录


MySQL calculate last 1 year record

我想计算一个表中某些列的和。正好是过去一年的总和。因此,可能需要对一组行进行每日计算。我正在使用以下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()函数。

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

我试过了,但是没有用

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

解决方案吗?

谢谢

最后,我用下面的逻辑得到了想要的输出。

$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%';

现在我可以得到特定的旧数据

谢谢大家的宝贵意见。

试试这样

UPDATE table SET date = DATE_ADD(date, INTERVAL 1)