2015-12-13 4 views
1

У меня есть функция, которая извлекает статистику с веб-сайта за последний месяц с текущей даты. Что мне нужно изменить в коде ниже, чтобы заставить его работать, чтобы получить статистику, например, с 01-11-2015 по настоящее время в течение месяца и так же для остальной части интервалов (3 м, 6 м и 1 год).Функция даты SQL - первая дата месяца до текущей даты

protected function duration($params) { 
    if($params->get('stats_duration')=='last_month') { 
     return 'AND datum_ura >= DATE_ADD(CURDATE(), INTERVAL - 1 MONTH)'; 
    } elseif($params->get('stats_duration')=='three_months') { 
     return 'AND datum_ura >= DATE_ADD(CURDATE(), INTERVAL - 3 MONTH)'; 
    } elseif($params->get('stats_duration')=='six_months') { 
     return 'AND datum_ura >= DATE_ADD(CURDATE(), INTERVAL - 6 MONTH)'; 
    } elseif($params->get('stats_duration')=='twelve_months') { 
     return 'AND datum_ura >= DATE_ADD(CURDATE(), INTERVAL - 1 YEAR)'; 
    } elseif($params->get('stats_duration')=='all') { 
     return ''; 
    } 
} 

ответ

0

Предполагая использование MySQL.

В текущем месяце, вы можете просто использовать условие следующим образом:

AND datum_ura >= DATE_FORMAT(NOW(), '%Y-%m-01') 

За последние 3 месяца, просто продлить его в этом:

AND datum_ura >= DATE_FORMAT(NOW() - INTERVAL 2 MONTH, '%Y-%m-01')