public function groupByDate($sort, Select &$select)
{
if ($this->getDriverName() == 'pdo_pgsql') {
switch ($sort) {
case 'HOUR':
$select->where("TO_CHAR(lu.visit_at, 'YYYYMMDD') = TO_CHAR(NOW(), 'YYYYMMDD')");
break;
case 'DAY':
$select->where("lu.visit_at > DATE_TRUNC('month', NOW())");
break;
case 'MONTH':
$select->where("lu.visit_at > DATE_TRUNC('year', NOW())");
break;
}
} elseif ($this->getDriverName() == 'pdo_mysql') {
switch ($sort) {
case 'HOUR':
$select->where(new Expression("DATE_FORMAT(lu.visit_at, '%Y/%m/%d') = DATE_FORMAT(NOW(), '%Y/%m/%d')"));
break;
case 'DAY':
$select->where(new Expression("DATE_FORMAT(lu.visit_at, '%Y%m') >= EXTRACT(YEAR_MONTH FROM NOW())"));
break;
case 'MONTH':
$select->where(new Expression("DATE_FORMAT(lu.visit_at, '%Y') >= EXTRACT(YEAR FROM NOW())"));
break;
}
}
}