我有一个链接到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"之间