我是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字段在MySQL中不是字段类型“date”。我应该在字段类型“date”的Event_Date字段。
答案 0 :(得分:3)
为了使用日期操作,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数据类型以进行比较。
答案 1 :(得分:0)
好的,所以我做了一些头撞,这就是我想出来的:
SELECT t.event_name, SUM(t.event_charges)AS total_charges 来自你的时间 在STR_TO_DATE($ from_date,'%Y-%m-%d')之间的t.event_date1 AND STR_TO_DATE($ to_date,'%Y-%m-%d') 或者t_vent_date2在STR_TO_DATE之间($ from_date,'%Y-%m-%d') AND STR_TO_DATE($ to_date,'%Y-%m-%d') GROUP BY t.event_name
这就像我的报告的魅力!非常感谢!!