簡體   English   中英

PHP MySQL查詢 - 在datetime字段中按日期分組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM