[英]MySQL Query Group By Date
我已根據其他帖子嘗試了各種建議但無濟於事。
我有一個帶有Created_Date
Key的記錄數據庫方案,而Value將是01/01/2017
我正在嘗試查詢數據庫記錄,以返回每月有多少記錄以及與哪個月相符的返回計數。
有以下幾點
SELECT SQL_NO_CACHE MONTH(`Created_Date`), COUNT(*)
FROM `CRM_Leads`
GROUP BY MONTH(`Created_Date`)
我回來
MONTH(`Created_Date`) COUNT(*)
NULL 872
我也嘗試了以下帖子中的幾乎所有變體
任何幫助,將不勝感激。
假設您的created_date是一個格式字符串('dd-mm-yyyy'),您應該使用str_to_date將其轉換為日期
SELECT SQL_NO_CACHE MONTH(str_to_date(`Created_Date`, '%d/%m/%Y')), COUNT(*)
FROM `CRM_Leads`
GROUP BY MONTH(str_to_date(`Created_Date`, '%d/%m/%Y'))
只要您將日期/時間信息存儲為字符串,您將很難使用任何日期/時間特定的功能和功能。 如果從MONTH(str_to_date(
獲得NULL MONTH(str_to_date(
Created_Date , '%d/%m/%Y'))
則str_to_date
不會將字符串轉換為日期,最可能的原因是dmy
“pattern”不是corrrect。
你所有關於你的“ 可能是約會的字符串 ”的老我們就是其中一個看起來像這樣: 01/01/2017
。 現在可能是DD/MM/YYYY
或MM/DD/YYYY
,我們根據您選擇與我們分享的單一價值無法確定哪一個是正確的。 在數據中查找大於12的任何日值 ,例如17/01/2017 ==> DD/MM/YYYY
或 01/17/2017 ==> MM/DD/YYYY
一旦你選擇了哪種模式,你的“ 可能是日期的字符串 ” 就會出現 ; 在str_to_date()函數中應用該模式。 你想要嘗試一些不同的模式來獲得最好的模式(這些只是你可以嘗試的許多模式中的3個):
# which pattern is best for you?
SELECT Created_Date
, str_to_date(`Created_Date`, '%d/%m/%Y') "d/m/y"
, str_to_date(`Created_Date`, '%m/%d/%Y') "m/d/y"
, str_to_date(`Created_Date`, '%Y-%m-%d') "y-m-d"
FROM `CRM_Leads`
在您選擇最合適的dmy
模式以應用於str_to_date函數之前,您將無法通過查詢獲得成功。 請注意,您的數據中可能還有各種模式,在這種情況下,您需要解決更大的問題。
一旦你選擇了哪種模式,你的“ 可能是日期的字符串 ” 就會出現 ; 在s tr_to_date()
函數中應用該模式,然后通過查詢您的組將起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.