Php MySQL:如果一年中的这个月是一月,如何查询上个月的数据?
如果今年的当前月份是2019年1月,我很难找到被视为2018年月份的上个月(12月)的记录 这是我到目前为止尝试过的,但它不显示记录Php MySQL:如果一年中的这个月是一月,如何查询上个月的数据?,php,mysql,Php,Mysql,如果今年的当前月份是2019年1月,我很难找到被视为2018年月份的上个月(12月)的记录 这是我到目前为止尝试过的,但它不显示记录 mysql_query("SELECT * FROM tbl_logs WHERE MONTH(date_added) = MONTH(NOW())-1 "); //This must display all records of December of last year. 但在某些查询中,它是有效的。就像去年的记录一样: mysql_query("S
mysql_query("SELECT * FROM tbl_logs WHERE MONTH(date_added) = MONTH(NOW())-1 ");
//This must display all records of December of last year.
但在某些查询中,它是有效的。就像去年的记录一样:
mysql_query("SELECT * FROM tbl_logs WHERE YEAR(date_added) = YEAR(NOW())-1 ");
//This displays all records of last year
我的输出应该能够显示去年12月的所有记录
多谢各位 您可以先使用
date\u sub
减去一个月,然后使用month()
或year()
提取月份或年份
上个月:
SELECT *
FROM tbl_logs
WHERE month(date_added) = month(date_sub(now(), INTERVAL 1 MONTH));
SELECT *
FROM tbl_logs
WHERE date_added >= concat(year(date_sub(now(), INTERVAL 1 MONTH)),
'-',
lpad(month(date_sub(now(), INTERVAL 1 MONTH)), 2, '0'),
'-',
'01')
AND date_added < concat(year(now()),
'-',
lpad(month(now()), 2, '0'),
'-',
'01');
去年:
SELECT *
FROM tbl_logs
WHERE year(date_added) = year(date_sub(now(), INTERVAL 1 MONTH));
SELECT *
FROM tbl_logs
WHERE date_added >= concat(year(now()) - 1,
'-01-01')
AND date_added < concat(year(now()),
'-01-01');
但更有效的方法是计算和使用范围,因为它允许使用索引
上个月:
SELECT *
FROM tbl_logs
WHERE month(date_added) = month(date_sub(now(), INTERVAL 1 MONTH));
SELECT *
FROM tbl_logs
WHERE date_added >= concat(year(date_sub(now(), INTERVAL 1 MONTH)),
'-',
lpad(month(date_sub(now(), INTERVAL 1 MONTH)), 2, '0'),
'-',
'01')
AND date_added < concat(year(now()),
'-',
lpad(month(now()), 2, '0'),
'-',
'01');
选择*
来自tbl_日志
其中,date\u added>=concat(年(date\u sub(now(),间隔1个月)),
'-',
lpad(月份(日期(现在(),间隔1个月)),2,'0'),
'-',
'01')
添加的日期
去年:
SELECT *
FROM tbl_logs
WHERE year(date_added) = year(date_sub(now(), INTERVAL 1 MONTH));
SELECT *
FROM tbl_logs
WHERE date_added >= concat(year(now()) - 1,
'-01-01')
AND date_added < concat(year(now()),
'-01-01');
选择*
来自tbl_日志
其中date_added>=concat(year(now())-1,
'-01-01')
添加的日期
你想要的索引将出现在
tbl\u日志(添加日期)
这可能有点麻烦,看来Sticky bit有一个很好的答案,但你可以试试这个
$currentDate = date("m", time());
if($currentDate != 01){
$currentDate--;
}else{
$currentDate = 12;
}
然后插入$currentDate
$query = "SELECT * FROM tbl_logs WHERE MONTH(date_added) = MONTH( " . $currentDate . " )";
mysql_query($query );
月份(现在()-1)产生这个日期:2018年2月1日我的代码的正确格式应该是什么?能给我看看吗?谢谢分享你的答案!