Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将一周内的查找转换为一个月?_Mysql_Sql - Fatal编程技术网

Mysql 将一周内的查找转换为一个月?

Mysql 将一周内的查找转换为一个月?,mysql,sql,Mysql,Sql,我有一个每周获取和分组结果的查找: SELECT COUNT(IF(YEARWEEK(Submitted, 1) = YEARWEEK(NOW(), 1), 1, null)) AS Bookings, COUNT(IF(YEARWEEK(Submitted, 1) = YEARWEEK(NOW()- INTERVAL 1 WEEK, 1), 1, null)) AS LastWeekBookings FROM Bookings 是否有一个月替代YEARWEEK,可以让一年、一个月和上一个月计

我有一个每周获取和分组结果的查找:

SELECT
COUNT(IF(YEARWEEK(Submitted, 1) = YEARWEEK(NOW(), 1), 1, null)) AS Bookings,
COUNT(IF(YEARWEEK(Submitted, 1) = YEARWEEK(NOW()- INTERVAL 1 WEEK, 1), 1, null)) AS LastWeekBookings
FROM Bookings

是否有一个月替代YEARWEEK,可以让一年、一个月和上一个月计算一个月的预订量?

没有简单的函数可以像
YEARWEEK()合并一年和一周那样合并一年和一个月。因此,只需分别比较两者。并减去
间隔1个月
,而不是
间隔1周

SELECT
COUNT(IF(YEAR(Submitted) = YEAR(NOW()) AND MONTH(Submitted) = MONTH(NOW()), 1, null)) AS Bookings,
COUNT(IF(YEAR(Submitted) = YEAR(NOW() - INTERVAL 1 MONTH) AND MONTH(Submitted) = MONTH(NOW() - INTERVAL 1 MONTH), 1, null)) AS LastMonthBookings
FROM Bookings
您可以使用该功能确定当前月份或上个月:

SELECT
  SUM(LAST_DAY(Submitted) = LAST_DAY(NOW()) AS Bookings,
  SUM(LAST_DAY(Submitted) = LAST_DAY(NOW()- INTERVAL 1 MONTH)) AS LastMonthBookings
FROM Bookings

YEAR(Submitted)=YEAR(NOW())和MONTH(Submitted)=MONTH(NOW())
我已经接受了这个答案,因为我假设当年份发生变化时,它不会出错,而当你到1月份时,分别比较月份和年份,从1月起减去一个月将查找同一年12月的结果?@BN83两个答案都不会弄乱日期。对不起,是的,我错过了一年中减去一个月的部分,假设如果是1月,也会减去一年。