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

时间:2016-07-02 15:34:44

标签: php mysql

我正在尝试计算本月数据库中每家餐厅的订单数量。我想知道如何根据月份和年份计算餐馆数量。

我曾尝试过:

   $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_sql_exception:功能one_delivery.DATEPART在...中不存在。

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

我正在使用php 7

1 个答案:

答案 0 :(得分:0)

如果Date_Time_PlacedOrderDate是有效的日期/日期时间字符串;例如:2016-07-02 16:57:00,您可以使用内置的MySQL函数YEAR()MONTH()

SELECT COUNT(Order_ID)
  FROM ord_dets 
 WHERE Resturant_ID='$Restaurant_id' 
   AND YEAR(Date_Time_Placed) = '$yy' 
   AND MONTH(OrderDate) = '$mm'

如果您的日期是UNIX时间戳,则需要先使用FROM_UNIXTIME()转换它们; e.g:

YEAR(FROM_UNIXTIME(Date_Time_Placed))

希望这会有所帮助:)