Gc\User\Visitor::groupByDate PHP Method

groupByDate() public method

group by date
public groupByDate ( string $sort, Zend\Db\Sql\Select &$select ) : void
$sort string Sort by HOUR, DAY, MONTH, YEAR
$select Zend\Db\Sql\Select
return void
    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;
            }
        }
    }