[英]PHP MySQL query- group by date in datetime field
我一直在尋找,我知道有類似的問題,但他們似乎都沒有回答這個問題。
我試圖計算一個員工按照給定的時間表工作的總天數。 為此,我計算員工在“計划”表中顯示的總行數。 如果員工在同一天安排兩次,則只會遇到問題。
為了解決這個問題,我想在DATETIME字段中計算總行數並按DATE排序。
當前查詢:
$days = mysql_query("SELECT emp_id FROM schedules
WHERE sch_id = '$sch_id'
AND emp_id = '$emp_data[emp_id]'");
$tot_days = mysql_num_rows($days);
我想將其更改為:
$days = mysql_query("SELECT emp_id FROM schedules
WHERE sch_id = '$sch_id'
AND emp_id = '$emp_data[emp_id]'
GROUP BY start_date");
// "start_date" is a datetime field. Need to sort by date only YYYY-MM-DD
$tot_days = mysql_num_rows($days);
有什么想法嗎?
如果您的start_date
列是MySQL日期時間類型,則可以使用以下內容:
$days = mysql_query("SELECT start_date, count(*) FROM schedules
WHERE sch_id = '$sch_id'
AND emp_id = '$emp_data[emp_id]'
GROUP BY DATE(start_date)
HAVING count(*) > 1
ORDER BY DATE(start_date)");
DATE函數“提取日期或日期時間表達式的日期部分” http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date
這將僅為您提供在給定日期內多次使用被考慮的emp_id的行。 如果要查看全部,請刪除HAVING
行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.