2017-08-11 99 views
-4

MySQL的日期时间范围查询问题复杂查询日期范围

如何获得proceser的数量在2017年的同一天像2017年8月7日


date   | name  
----------------------- 
2017-08-31 | amr 
----------------------- 
2017-08-05 | ahmed 
----------------- ----- 
    2018-08-08 | moh 

how get 2017-01-01 BETWEEN 2017-12-31 
------------------------ 
count   | date  
----------------------- 
2   | 2017 
----------------------- 
    1   | 2018 
SELECT count(*) 
    FROM item WHERE 
    date IN 
    (SELECT date 
    FROM item WHERE 
    (BETWEEN '2017-03-15' AND '2017-09-31')) 
+1

看到https://stackoverflow.com/questions/1469689/select-mysql-query-between-date –

+0

没有我proplem不同 –

+2

可能重复的[选择mysql日期之间的查询吗?](https://stackoverflow.com/questions/1469689/select-mysql-query-between-date) –

回答

0

我无法找到一个重复你,但我确定有一个地方。

如果使用GROUP BYDATE_FORMAT()函数,则可以在每个组中发生COUNT()

SELECT COUNT(*),DATE_FORMAT(`date`,'%Y') FROM `item` GROUP BY DATE_FORMAT(`date`,'%Y'); 

可以包括GROUP BYWHERE条款,如果你需要省略一定的时间范围内。

0

1,日期是一个保​​留的MySQL字。最好给你的专栏命名一些东西,但是你可以使用它,如果你也指定表名,如table.date

2,不需要子查询。 MySQL能在一个查询

SELECT count(`table.name`) as NUMBER, YEAR(`table.date`) as YR FROM item WHERE DATE(`table.date`) BETWEEN '2017-01-01' AND '2017-12-31' 
+0

我更新了查看问题 –

0

之间是怎样的一个“三元”运算符做到这一点,形式的x BETWEEN y AND z

你想:

`date` BETWEEN '2017-03-15' AND '2017-09-31' 
+0

'date' BETWEEN'2017-03-15'AND'2017-09-31' and 'date' BETWEEN'2018-03-15'AND'2018-09-31' –

+0

You需要“或”不“和”;一个日期不能在多个不重叠的日期范围内,超过2个可以在1-3和3-4中。 – Uueerdo