我希望从MySQL数据库中检索数据,计算工作日数和周末工作天数.
来自DB的时间格式如下:2013-07-01 07:00
这是我到目前为止:
function isWeekend($date) {
$check = date("w", strtotime($date));
if ($check == 6 || $check == 0) {
return 1;
}
else {
return 0;
}
}
$query = mysql_query ("SELECT date from jobcards");
while ($row = mysql_fetch_assoc($query)) {
$date = $row['date'];
$date_check= isWeekend($date);
if ($date_check == 1) {
++$weekend;
}
else {
++$workday;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要找到一种方法来计算使用mysql的日子,有没有这样的方法或更优雅的方法来改进PHP代码?
此外,如果我在数据库中有多个具有相同日期范围但时间不同的记录:2013-07-01 07:00和2013-07-01 07:30它将被计为两个工作日,我将如何防止这种情况?
谢谢.
看一下WEEKDAY功能,并将其与星期日/星期六(分别)的6/5进行比较
您的SQL看起来像:
SELECT SUM(IF(WEEKDAY(date) >= 5, 1, 0) AS WeekendCount,
SUM(IF(WEEKDAY(date) < 5, 1, 0) AS WeekdayCount
FROM jobcards
Run Code Online (Sandbox Code Playgroud)
这里有一个类似的答案:MySQL Weekday/Weekend count - Part II
修正了IF被放置在错误的位置