您将如何选择本月 8 日和上月 8 日之间的所有记录而不在当月通过?我的日期列是日期类型。
SELECT *
FROM table
WHERE date BETWEEN '8th of last month' AND
'8th of this month'
我尝试在 PHP 中计算日期,然后将它们发送到 MySQL。但是在考虑到年数时它会变得有点复杂。我想知道这是否可以用 SQL 来完成?
从可读性的角度来看,使用 PHP 可能更直接,使用.strtotime()
以下内容应该可以帮助您入门:
echo date('Y-m-d', strtotime('eighth of last month'));
序数不像我上面想的那样工作。但是,假设您使用当月的同一天(即 8 日)。以下是好的:
echo date('Y-m-08', strtotime('last month'));
这是一个解决方案
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')));