Я новичок в программировании на PHP и MySQL и по-прежнему прокладываю себе путь. Итак, небольшая помощь в этом будет высоко оценена:
У меня есть таблица, которая записывает определенные события. Вот как выглядит мой стол:
Id - Event_Name - Event_Date - Event_Charges
---------------------------------------------
1 - Event 1 - 10/10/2010 - $100
2 - Event 2 - 10/31/2010 - $200
3 - Event 3 - 11/12/2010 - $150
4 - Event 4 - 12/01/2010 - $175
Цель состоит в том, чтобы перечислить название событий и суммировать расходы за определенный диапазон дат...
Моя форма внешнего вида выглядит следующим образом:
From Date: ____________
To Date: ______________
Пользователь вводит эти два поля, и я должен перечислить события, входящие в этот диапазон дат, и суммировать их.
Обратите внимание, что поле Event_Date не имеет тип поля "date" в MySQL. Должен ли я иметь поле Event_Date типа поля "date" .
Чтобы использовать операции с датой, тип данных event_date
должен быть одним из следующих:
После этого вы можете использовать:
SELECT t.event_name,
SUM(t.event_charges) AS total_charges
FROM YOUR_TABLE t
WHERE t.event_date BETWEEN STR_TO_DATE($from_date, '%Y-%m-%d')
AND STR_TO_DATE($to_date, '%Y-%m-%d')
GROUP BY t.event_name
... в котором возникает вопрос о необходимости применения формата даты. Вот почему я привел пример с использованием STR_TO_DATE, поэтому строка из формы HTML преобразуется в тип данных MySQL DATETIME для сравнения.
Хорошо, поэтому я немного ударил головой, и вот что я придумал:
SELECT t.event_name, SUM (t.event_charges) AS total_charges FROM YOUR_TABLE t WHERE t.event_date1 BETWEEN STR_TO_DATE ($ from_date, '% Y-% m-% d') И STR_TO_DATE ($ to_date, '% Y-% m-% d') ИЛИ t.event_date2 BETWEEN STR_TO_DATE ($ from_date, '% Y-% m-% d') И STR_TO_DATE ($ to_date, '% Y-% m-% d') GROUP BY t.event_name
Это работает как прелесть моего отчета! Большое спасибо!