数据是这样存储的-- 表结构
tableA
id int
beginDate datetime
endDate datetime
type varchar(50)
-- 存储的数据
1 2011-05-01 2011-06-20 假期A
2 2011-08-20 2011-09-10 假期B
3 2011-09-25 2011-12-02 假期C
question,我想要某个月,某种类型的结果集. (比如假期A类型9月份的结果集,一天为一条记录),或者反过来,某个月内不包括某种假期类型的结果集,
现在的想法是app写一个for循环,按某个月的天数循环,这样太慢,请教如何通过sql 语句查询出来呢?
tableA
id int
beginDate datetime
endDate datetime
type varchar(50)
-- 存储的数据
1 2011-05-01 2011-06-20 假期A
2 2011-08-20 2011-09-10 假期B
3 2011-09-25 2011-12-02 假期C
question,我想要某个月,某种类型的结果集. (比如假期A类型9月份的结果集,一天为一条记录),或者反过来,某个月内不包括某种假期类型的结果集,
现在的想法是app写一个for循环,按某个月的天数循环,这样太慢,请教如何通过sql 语句查询出来呢?
SET @dt='2011-09-01'SELECT * FROM tableA WHERE endDate>@dt AND beginDate<DATEADD(m,1,@dt)-1
or beginDate<=DATEADD(m,1,指定月的日期)
樓主要搞清楚什麼是循環??while //goto