Php 根据月份和年份(时间戳)统计数据库结果的数量

Php 根据月份和年份(时间戳)统计数据库结果的数量,php,mysql,Php,Mysql,这个月,我试图统计我所在的db中每个餐厅的订单数量。我想知道你如何根据月份和年份来计算餐厅的数量 我曾尝试: $mm = date('m'); $yy = date('Y'); $month_sales = mysqli_query($dbc, "SELECT COUNT(Order_ID)FROM ord_dets WHERE Resturant_ID='$Restaurant_id' AND DATEPART(yyyy,Date_Time_Placed ) ='$y

这个月,我试图统计我所在的db中每个餐厅的订单数量。我想知道你如何根据月份和年份来计算餐厅的数量

我曾尝试:

   $mm = date('m');
   $yy = date('Y');
   $month_sales = mysqli_query($dbc, "SELECT COUNT(Order_ID)FROM ord_dets WHERE 
   Resturant_ID='$Restaurant_id' AND DATEPART(yyyy,Date_Time_Placed ) ='$yy' AND DATEPART(mm,OrderDate)='$mm'");

   $month_sales_row = $month_sales->fetch_row()[0];
   printf("%d \n", $month_sales_row);

   mysqli_free_result($month_sales);
但我得到了这个错误:

未捕获的mysqli\u sql\u异常:函数one\u delivery.DATEPART不存在于

Date_Time_Placed是表中保存订单时间戳的列


如果
Date\u Time\u-Placed
OrderDate
是有效的日期/日期时间字符串,我使用的是PHP7

;e、 g:
2016-07-02 16:57:00
,您可以使用内置的MySQL函数和:

如果您的日期是UNIX时间戳,则需要首先使用转换日期;e、 g:


希望这有帮助:)

如果放置的
Date\u Time
OrderDate
是有效的日期/日期时间字符串;e、 g:
2016-07-02 16:57:00
,您可以使用内置的MySQL函数和:

如果您的日期是UNIX时间戳,则需要首先使用转换日期;e、 g:


希望这有帮助:)

你可能想看看这个:补充一下@ChinLeung所说的内容。DATEPART是一个
T-SQL
或更常见的名称,
mssql
函数不是
MySQL
。请不要混淆这两个,因为虽然它们有相似之处,但功能不同。下面是一个很好的比较,您可以在MySQL中使用
YEAR()
MONTH()
函数;e、 g:
WHERE YEAR(my_datetime)='2016'和MONTH(my_datetime)='6'
等。刚刚意识到您指出至少有一列是时间戳-我假设是UNIX时间戳,而不是datetime@Matt哦,对了。我错了,谢谢你链接帮助了我你可能想看看这个:补充一下@ChinLeung所说的。DATEPART是一个
T-SQL
或更常见的名称,
mssql
函数不是
MySQL
。请不要混淆这两个,因为虽然它们有相似之处,但功能不同。下面是一个很好的比较,您可以在MySQL中使用
YEAR()
MONTH()
函数;e、 g:
WHERE YEAR(my_datetime)='2016'和MONTH(my_datetime)='6'
等。刚刚意识到您指出至少有一列是时间戳-我假设是UNIX时间戳,而不是datetime@Matt哦,对了。我错了,谢谢你,链接帮了大忙
SELECT COUNT(Order_ID)
  FROM ord_dets 
 WHERE Resturant_ID='$Restaurant_id' 
   AND YEAR(Date_Time_Placed) = '$yy' 
   AND MONTH(OrderDate) = '$mm'
YEAR(FROM_UNIXTIME(Date_Time_Placed))