2017-08-11 73 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