繁体   English   中英

DateTime问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM