第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

DataTable.Select 將日期時間存儲為字符串

DataTable.Select 將日期時間存儲為字符串

C#
UYOU 2021-08-22 17:20:20
我有DataTable一個DateTime存儲為string像“二零一七年十二月二十零日”。我想選擇過去 6 個月內(nèi)的所有行。我可以用一個foreach:foreach (DataRow dr in dsErgebnisse.Tables[0].Rows){   if (Convert.ToDateTime(dr[6].ToString()) > DateTime.Now.AddMonths(-6))   {       dsTemp.Tables[0].ImportRow(dr);   }}這給了我 3.613 行。我嘗試通過選擇來檢查它是否更快:DataRow[] foundRows = dsErgebnisse.Tables[0].Select("DATUM > '" + DateTime.Now.AddMonths(-6).ToShortDateString() + "'");DATUM是我的列,其中DateTime存儲為字符串。這給了我 2.624 行。為什么有區(qū)別?我試圖在 select 語句中使用 convert 但我失敗了System.Data.EvaluateException:foundRows = dsErgebnisse.Tables[0].Select("Convert(DATUM, 'System.DateTime') > '" + DateTime.Now.AddMonths(-6).ToShortDateString() + "'");
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻1865條經(jīng)驗 獲得超7個贊

  • 規(guī)則 0:停止使用DataTable......永遠*

  • 規(guī)則 1:不要將日期/時間值存儲為字符串;將它們存儲為DateTime或類似

  • 規(guī)則 2:如果您忽略規(guī)則 0 和 1,請確保以可排序的順序存儲它們,例如“2017-12-20”

由于您違反了所有這些規(guī)則,因此大多數(shù)賭注都失敗了,您可能必須通過遍歷行、獲取值并進行自己的轉(zhuǎn)換來手動執(zhí)行過濾器。LINQ via.AsEnumerable() 可能會有所幫助;它當(dāng)然不能讓它變得更糟:)


*=在DataTable適當(dāng)?shù)牡胤接幸恍〔糠謫栴};如果您事先了解數(shù)據(jù)的架構(gòu)足以發(fā)出Select查詢:這不是其中之一


查看完整回答
反對 回復(fù) 2021-08-22
  • 1 回答
  • 0 關(guān)注
  • 754 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號