我有一個數據表有一個按月份分解的日期&年。我需要按日期過濾,所以我正在考慮添加一個帶有表達式的列以獲取真正的DateTime列。這是處理這個問題的最好方法嗎?可以'轉換'做到這一點?類似...將日期分解爲2個整數,月份和年份,按日期過濾的最佳方法是什麼?
dt.Columns.Add("RealDate", typeof(DateTime), "Convert(Month + '/1/' + Year, 'System.DateTime')");
我有一個數據表有一個按月份分解的日期&年。我需要按日期過濾,所以我正在考慮添加一個帶有表達式的列以獲取真正的DateTime列。這是處理這個問題的最好方法嗎?可以'轉換'做到這一點?類似...將日期分解爲2個整數,月份和年份,按日期過濾的最佳方法是什麼?
dt.Columns.Add("RealDate", typeof(DateTime), "Convert(Month + '/1/' + Year, 'System.DateTime')");
既然沒有人回答,我要重申我使用的代碼:
dt.Columns.Add("RealDate", typeof(DateTime), "Convert(Month + '/1/' + Year, 'System.DateTime')");
我會在填充DataTable的SQL中執行轉換。這可能是內聯SQL,存儲過程或ORM。
讓數據庫引擎完成這項工作。不要花費大量資源在您的應用中執行這些轉換和計算。
編輯:如果你不能改變的過程中產生的數據表,您可以通過使用數據視圖的RowFilter,這樣的篩選:
DataView dataView = dataTable1.DefaultView;
dataView.RowFilter = string.Format("Month = '{0}' && Year = '{1}'", Month, Year);
我想太多,但我只有一起工作的數據表。 – Homer 2010-11-03 17:34:15
這對於Date>'8/8/08' – Homer 2010-11-03 18:52:13
是沒有用的。是的,荷馬,你可以寫過濾器來包含當天,你可以使用大於或大於/等於。 – DOK 2010-11-03 19:00:29