Mysql 具有相同月份时间戳的计数值

Mysql 具有相同月份时间戳的计数值,mysql,sql,count,timestamp,Mysql,Sql,Count,Timestamp,我正在努力计算所有具有相同时间戳的值。以下是我的数据库的外观: 假设我希望在2013年5月获得订单数量。完成此操作的正确语法是什么?要获取时间戳范围的计数,我们可以将时间戳列与下限和上限进行比较,例如: SELECT COUNT(*) FROM mytable t WHERE t.orderdate >= '2013-05-01 00:00:00' AND t.orderdate < '2013-06-01 00:00:00' 请注意,第一个查询(在空白的ord

我正在努力计算所有具有相同时间戳的值。以下是我的数据库的外观:


假设我希望在2013年5月获得订单数量。完成此操作的正确语法是什么?

要获取时间戳范围的计数,我们可以将时间戳列与下限和上限进行比较,例如:

SELECT COUNT(*)
  FROM mytable t
 WHERE t.orderdate >= '2013-05-01 00:00:00' 
   AND t.orderdate <  '2013-06-01 00:00:00'

请注意,第一个查询(在空白的
orderdate
列上的WHERE子句中有条件)可以利用以
orderdate
作为前导列的索引来执行有效的范围扫描操作

SELECT SUM(IF(t.orderdate >= '2013-05-01' AND t.orderdate < '2013-06-01',1,0)) AS cnt_may
  FROM mytable t
SELECT SUM(CASE WHEN DATE_FORMAT(t.orderdate,'%Y-%m') = '2013-05' THEN 1 ELSE 0 END) AS cnt_may
  FROM mytable t