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

时间:2012-08-06 09:05:18

标签: asp-classic vbscript

我有一个链接到SQL服务器的ASP页面。基本上我需要一些查询将提取某些日期之间的所有记录。我需要过去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天。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

为什么不将您的查询更改为过滤

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

您还可以使用GROUP BY查询

在一个结果集中获取所有结果

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

ie:2012-07-31 09:15不在'2012-07-01'和'2012-07-31'之间