2016-10-27 68 views
1

我在sql表中有幾個字段,包括名稱,類型和日期。在日期中,它以字符串「2016-05-01」格式存儲。我想計算按季度日期分組的名稱發生次數。mySQL將字符串日期轉換爲季度

通過這個,我的意思是這個名字可以在一個月內多次出現。我想計算名稱出現在3個月(季度)組中的次數,並在每行中打印名稱,計數和季度。

所以,如果例如我有列名,類型,日期和運行查詢 則可能導致

Name Quarter Count 
Ron | 1 | 62 | 
Ron | 2 | 32 | 
Ron | 3 | 45 | 
Ron | 4 | 33 | 
Tim | 1 | 62 | 
Tim | 3 | 62 | 

等。由於

回答

3

假設my_date_column是 你可以使用季度()

select Name, QUARTER(my_date_column), count(*) 
frpm my_table 
group by name, QUARTER(my_date_column) 
; 

否則你應該將字符串轉換日期

用於字符串轉換爲可以使用的日期

str_to_date('2016-09-20', '%Y-%m-%d') 


select Name, QUARTER(str_to_date(my_strdate_column, '%Y-%m-%d')), count(*) 
frpm my_table 
group by name, QUARTER(str_to_date(my_strdate_column, '%Y-%m-%d')) 
; 
+0

我怎樣才能將字符串「2016-09-20」轉換爲日期格式?就像我之前使用的是MONTH()之類的東西,但是哪個函數會給我正確的日期格式? – Idontknow

+0

我有更新答案希望是你需要的 – scaisEdge