2011-05-30 77 views
0

我怎样才能在数据库中选择部分列(如sqlserver的..) 我有姓名,ID,和日期命名的动态创建的列..选择在数据库中部分列

办我查询从2011年1月1日至16-1-2011 ..the查询应返回的所有日期该范围之间...... 星期日除外......

我使用Access数据库用C#

所以...我试着选择从开始日期直到我们到达结束日期的列.. 但它怎么做..(这删除了桑达YS太.. :))

也着塔中使用索引或东西...像阵列选择?

eg.schema是这样的,,,,,列名(ID,姓名, '2011年1月1日', '2011年2月1日', '2011年4月1日','6- 1-2011','6-1-2011')..我如何显示从2-1-2011到6-1-2011的所有行?

+2

显示一些代码,请。你的问题不清楚。 – Reniuz 2011-05-30 16:45:42

回答

1

试试这个

StringBuilder query = new StringBuilder("Select ID,Name ") 
    DateTime begindate=DateTime.Parse("2-1-2011"); 
    DateTime enddate=DateTime.Parse("6-1-2011"); 
    DateTime tempDate = begindate; 
    while(tempDate<=enddate) 
    { 
     if(tempDate.DayOfWeek!=DayOfWeek.Sunday) 
     { 
      if (tempDate==begindate) 
      { 
       query.Append(","); 
      } 
      query.Append(","+tempDate.ToString("dd-MM-yyyy")); 
     } 
     tempDate = tempDate.AddDays(1); 
    } 
    query.Append(" From table Name"); 

然后执行产生的select语句。

+0

实际答案也会限制日期范围,而不仅仅是消除星期日。这很重要的原因是您需要日期范围限制,而不仅仅是为了正确答案,但为了使查询更有效率,因为在WHERE子句中使用函数意味着索引不会用于比较的那部分。 – 2011-05-30 22:45:22

+0

@大卫-W-芬顿我认为这将覆盖您的意见,谢谢 – 2011-05-30 22:51:22

+0

注:列名的历史可...所以我应该如何选择them..get它.. – Suraj 2011-05-31 05:26:15