每个月在本月8日和上个月8日之间选择

时间:2012-09-06 03:31:10

标签: php mysql

您如何选择本月8日至上个月8日之间的所有记录而不通过当月?我的日期列是日期类型。

SELECT * 
FROM table
WHERE date BETWEEN '8th of last month' AND 
                   '8th of this month'

我已经尝试在PHP中计算日期计算,然后将它们发送到MySQL。但考虑到多年,它会变得有点复杂。我想知道这是否可以用SQL来完成?

2 个答案:

答案 0 :(得分:2)

使用relative timestrtotime(),从可读性的角度来看,使用PHP可能更直接

以下内容可以帮助您入门:

echo date('Y-m-d', strtotime('eighth of last month'));

更新

普通不像我上面想象的那样工作。但是,假设您使用的是当月的同一天(即第8天)。以下情况很好:

echo date('Y-m-08', strtotime('last month'));

答案 1 :(得分:2)

这是一个解决方案

echo date('Y-m-d', mktime(0, 0, 0, date('n') - 1, 8));

如果你想使用strtotime

echo date('Y-m-d', strtotime('+7 days', strtotime('first day of last month')));