2011-05-30 80 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