2014-01-05 3 views
0

У меня есть следующий SQL-запрос, который хорошо передает данные для текущей даты, как я могу задать этот запрос для запроса недели данных из curdate?Добавить интервал между неделями и датами

SELECT count(*) as today_total_4 
FROM cdr 
WHERE dcontext='ext-queues' AND DATE(`calldate`) = DATE(CURDATE()) 

Большое спасибо.

ответ

1

Вы можете использовать функцию DATE_ADD для получения даты через неделю. (Вперед или назад)

http://www.w3schools.com/sql/func_date_add.asp

SELECT count(*) as today_total_4 
FROM cdr 
WHERE dcontext='ext-queues' AND DATE(`calldate`) = DATE_ADD(CURDATE(), INTERVAL 7 DAY) 

В зависимости от ваших требований запроса вы можете вычислить 7 дней назад с помощью:

DATE_ADD(CURDATE(), INTERVAL -7 DAY) 

Если вы хотите запрос, чтобы быть все, так как неделю назад , то вы бы изменили свой запрос на следующее:

WHERE dcontext = 'ext-queues' AND DATE (calldate)> DATE _ADD (CURDATE(), ИНТЕРВАЛ -7 DAY)

+0

Я думаю, что ОП хочет результат 'DATE (\' \ 'calldate)> DATE_ADD (CURDATE(), ИНТЕРВАЛ -7 DAY)' – Paul

+0

Thats возможно. Я не был уверен, на какую дату он искал (вперед, равный, больший, меньше, между и т. Д.). Я надеялся дать ему представление о том, что функция может сделать, чтобы рассчитать различия в датах, и он мог идти оттуда , Я отредактирую сообщение с дополнительной информацией. –

+1

Спасибо, Пол И Джеймс – user3148002

0
SELECT count(*) as today_total_4 
FROM cdr 
WHERE dcontext='ext-queues' AND WHERE WEEK(`calldate`) = WEEK(DATE(CURDATE())) 
Смежные вопросы