ASP/SQL Server-从/到日期基于一年中的月份



我有一个链接到SQL server的ASP页面。基本上我需要一些查询来提取某些日期之间的所有记录。我需要一份过去6个月的月度明细表。

所以,这个月是8月(6日),所以第一个查询需要有一行写着

AND DATE BETWEEN '2012-08-01' and '2012-08-31'

我还需要5个查询,说

AND DATE BETWEEN '2012-07-01' and '2012-07-31'

AND DATE BETWEEN '2012-06-01' and '2012-06-30'

等等。等等追溯到三月。

有办法做到这一点吗?我试过做下面的VB脚本,但没有给出正确的结果;

ThisMonth = Date
Month1 = DateAdd("m", -1, Date)
Month1From = DateAdd("d", 1, Month1 - Day(Date))
Month1To = DateAdd("m", 1, Month1 - Day(Date))
Month2 = DateAdd("m", -2, Date)
Month2From = DateAdd("d", 1, Month2 - Day(Date))
Month2To = DateAdd("m", 1, Month2 - Day(Date))
Month3 = DateAdd("m", -3, Date)
Month3From = DateAdd("d", 1, Month3 - Day(Date))
Month3To = DateAdd("m", 1, Month3 - Day(Date))
Month4 = DateAdd("m", -4, Date)
Month4From = DateAdd("d", 1, Month4 - Day(Date))
Month4To = DateAdd("m", 1, Month4 - Day(Date))
Month5 = DateAdd("m", -5, Date)
Month5From = DateAdd("d", 1, Month5 - Day(Date))
Month5To = DateAdd("m", 1, Month5 - Day(Date))

我本来打算基于这些变量构建SQL,但我做不到,因为变量Month5To显示为Match的第29天,但3月份有31天。

有人能帮忙吗?

为什么不将查询更改为在上进行筛选

 WHERE MONTH(date)= @m AND YEAR(date) = @y

您还可以使用GROUP BY查询在一个结果集中获得所有结果

还要注意,如果日期值附加了任何时间,则原始查询将失败。

即:2012-07-31 09:15不在"2012-07-01"one_answers"2012-07-31"之间

最新更新