PHP Mysql GET 上个月和当月数据

标签 php mysql sql

我想检索m上个月的数据和当月的数据

我的查询正常工作

上个月的数据从当前日期计算 1 个月。但我希望我的数据按日历月计算,而不是从当前日期计算。

喜欢

我当前的日期是 2014-07-23

现在我的计算通过从当前日期计算月份来返回数据。

但我想根据日历一月、二月、三月范围进行获取。

我上个月当前的查询

SELECT (100*AVG((m.carbs)/((m.carbs)+(m.fat)+(m.protein)))) AS Percantage_carbs,(100*AVG((m.fat)/((m.carbs)+(m.fat)+(m.protein)))) AS Percantage_fat,(100*AVG((m.protein)/((m.carbs)+(m.fat)+(m.protein)))) AS Percantage_protein
FROM `meal` AS m,`user_history` as u where u.meal_id=m.id and u.user_id=$user_id and date(FROM_UNIXTIME(u.create)) BETWEEN SUBDATE(CURDATE(), INTERVAL 1 MONTH) AND NOW() 

本月我当前的查询

SELECT (100*AVG((m.carbs)/((m.carbs)+(m.fat)+(m.protein)))) AS Percantage_carbs,(100*AVG((m.fat)/((m.carbs)+(m.fat)+(m.protein)))) AS Percantage_fat,(100*AVG((m.protein)/((m.carbs)+(m.fat)+(m.protein)))) AS Percantage_protein
FROM `meal` AS m,`user_history` as u where u.meal_id=m.id and u.user_id=$user_id and YEARWEEK(date(FROM_UNIXTIME(u.create))) = YEARWEEK(CURRENT_DATE)

最佳答案

上个月

year(date(FROM_UNIXTIME(u.create))) = year(CURDATE() - INTERVAL 1 MONTH)
and month(date(FROM_UNIXTIME(u.create))) = month(CURDATE() - INTERVAL 1 MONTH)

本月

year(date(FROM_UNIXTIME(u.create))) = year(CURDATE())
and month(date(FROM_UNIXTIME(u.create))) = month(CURDATE())

关于PHP Mysql GET 上个月和当月数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24904105/

相关文章:

javascript - jQuery 验证在公共(public)文件中不起作用

javascript - 删除 PHP 中所有 REAL Javascript 注释

php - PHP var_dump() 上的授权 header 为空

sql - 如何在 SQL Developer 中为查询结果设置替换变量?

php - 对照另一个数组检查数组

mysql - 从本地运行的 NodeJS/TypeORM 连接到 Google Cloud MySQL 实例

mysql - 无法使用 SOURCE 命令运行 sql 文件 Windows 命令行

php - 使用 PDO 从 MySQL 获取数据

mysql - 在 postgresql 中使用性能测量(从 mysql 到)优化查询

java - jtable点击显示信息不起作用