我有一个链接到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天。
有人可以帮忙吗?
答案 0 :(得分:0)
为什么不将您的查询更改为过滤
WHERE MONTH(date)= @m AND YEAR(date) = @y
您还可以使用GROUP BY
查询
另请注意,如果日期值附加了任何时间,则原始查询将失败。
ie:2012-07-31 09:15不在'2012-07-01'和'2012-07-31'之间