我有一张表,我需要从中检索数据。 该表有一个日期字段-tbl_date - 我需要的是,当我从日期和2011年2月选择2010年1月作为Todate时,它应显示这两个日期之间的所有记录,以及每个月组的个别结果。
赞 - 结果应显示为
2010年1月
记录1值
记录2值
2010年2月
记录1值
记录2值
.........
2011年2月
记录1值
记录2值
任何人都能帮助我吗? 谢谢
Sathish所在
答案 0 :(得分:0)
不错的问题,这是一个未经测试的解决方案:
SELECT *,
YEAR(date) as year,
MONTHNAME(date) as month
FROM table
WHERE date BETWEEN date1 AND date2
ORDER BY date ASC
答案 1 :(得分:0)
查询非常简单:
SELECT field1, field2, field3 FROM myTable
WHERE tbl_date BETWEEN @startdate AND @enddate;
快速获取正确的数据(因为它可以使用tbl_date字段上的索引)。唯一棘手的问题是将正确的值添加到@startdate
和@enddate
变量中。对于您的示例,它们必须是2010-01-01
和2011-02-28
(即第一个月的开始和上个月的结束)。
另一点是返回的数据如下所示:
Record 1 values from January 2010
Record 2 values from January 2010
Record 3 values from February 2010
Record 3 values from February 2010
Record 4 values from February 2010
Record 4 values from March 2010
没有月份标题行说'2010年1月'和'2010年2月',分解每个部分。 SQL数据查询在返回那种数据时很糟糕(主要行有20个数据字段,而其他行只有一个)。我建议使用应用程序(例如php)获取数据并在显示中插入这些标题,而不是试图将它们包含在从数据库返回的记录集中。