[英]Issue with DateTime
我可以發誓這是兩天前的工作,現在它引發了異常...
我正在對照DataTable
中的某些數據進行檢查。 我基本上是在計算過去15分鍾內找到某個eventID
次數。 這是代碼:
int startevents = trackingData
.Select("RHEventID = 3 AND RHDateEvent > #" + now + "#" ).Length;
我在此之前定義'now'變量-看起來像這樣:
DateTime now = DateTime.Now.AddMinutes(-15);
但是,此操作引發的字符串未被識別為有效的DateTime異常。 這是RHDateEvent列中數據表中數據的示例:
2017-02-14 13:58:27 PM(編輯-是的,這只是該欄中的一個日期,而不是兩個日期)
那我在做什么錯? 我是否需要以某種方式轉換此DateTime?
我真的建議使用Linq-To-DataTable
代替舊的有限Select
方法:
DateTime in15minutes = DateTime.Now.AddMinutes(15);
var matchingRows = from row in trackingData.AsEnumerable()
where row.Field<int>("RHEventID) == 3
&& row.Field<DateTime>("RHDateEvent") > in15minutes
select row;
如果您現在只需要計數,請使用:
int matchingRowCount = matchingRows.Count();
這更具可讀性,功能強大並支持編譯時安全。
如果您的列不是DateTime
而是string
列,則需要對其進行解析:
...
&& DateTime.Parse(row.Field<string>("RHDateEvent"), CultureInfo.InvariantCulture) > in15minutes
看來日期時間重復了...
2017-02-14 13:58:27 PM 2017-02-14 13:57:27 PM
代替
2017-02-14 13:58:27 PM
如果是實體使用的限制
var startevents = trackingData.Where(e => e.RHEventId = 3 && e.RHDateEvent >= DateTime.Now.AddMinutes(-15)).Count();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.