DataTable.Select日期格式问题

编程入门 行业动态 更新时间:2024-10-11 05:20:55
本文介绍了DataTable.Select日期格式问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我使用DataTable.Select过滤日期范围的数据,我的条件字符串是:

CreatedOn> ; ='03/11/2009 00:00:00'AND CreatedOn< ='03/11/2009 23:59:00'

此过滤器不返回任何行(即使可以在未过滤的数据表中看到匹配的行)。但是,如果我将条件改为(注意日/月转置),请注意:

CreatedOn> ='11 / 03/2009 00:00:00'AND CreatedOn< ='11/03/2009 23:59:00'

预期的数据过滤器。显然,这似乎是一个日期本地化问题,是否有一种简单的格式化日期来避免这个问题?

解决方案

使用标准的ISO格式datetime(11月3日):

CreatedOn> ='2009-11-03 00: 00:00'AND CreatedOn< ='2009-11-03 23:59:00'

其实如果你想要11月3日创建的所有记录,你应该这样做,因为你也希望在最后一刻创建的记录,例如23:59:30:

CreatedOn> ='2009-11-03'AND CreatedOn<'2009-11 -04'

有一个快速参考 here

I'm filtering a datatable on a date range using DataTable.Select, my criteria string is:

"CreatedOn >='03/11/2009 00:00:00' AND CreatedOn <='03/11/2009 23:59:00'"

This filter returns no rows (even though I can see matching rows in the unfiltered datatable). However I notice if I change the criteria to (note the day/month transposition):

"CreatedOn >='11/03/2009 00:00:00' AND CreatedOn <='11/03/2009 23:59:00'"

The datatable filters as expected. Clearly this seems to be a date localisation issue, is there an easy way to format the date to avoid this issue?

解决方案

Use a standard ISO format datetime like this (for 3rd Nov):

"CreatedOn >='2009-11-03 00:00:00' AND CreatedOn <='2009-11-03 23:59:00'"

In fact, if you want all records created on 3rd Nov, you should really do this as you also want records created in that last minute e.g. 23:59:30:

"CreatedOn >='2009-11-03' AND CreatedOn < '2009-11-04'"

There's a quick reference here

更多推荐

DataTable.Select日期格式问题

本文发布于:2023-11-11 05:17:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1577482.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:日期   格式   DataTable   Select

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!