DataTable.Select 实际问题格式

我过滤 datatable 在日期范围内使用 DataTable.Select, 我的标准字符串:


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


此过滤器不会返回任何行 /虽然我看到了未经过滤的相应行 datatable/. 但是,我会注意到我是否更改了标准 /注意换位日 / 月/:


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


过滤器 datatable, 正如预期的那样。 显然,这是日期本地化的问题,是否有一种简单的方法来格式化日期以避免这个问题?
已邀请:

奔跑吧少年

赞同来自:

使用标准格式 ISO datetime, 像这样 /为了 3 十一月/:


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


事实上,如果您想要创建所有记录 3 11月,你真的要这样做,因为你还想要在最后一分钟内创建的记录,例如 23:59:30:


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


http://www.w3.org/QA/Tips/iso-date
有简短的参考

八刀丁二

赞同来自:

试试吧:


string selectString = String.Format/"CreatedOn >= '{0}' AND CreatedOn <= '{1}'",
startDate.ToString/DateTimeFormatInfo.InvariantInfo/,
endDate.ToString/DateTimeFormatInfo.InvariantInfo//;
dt.Select/selectString/;

奔跑吧少年

赞同来自:

看,你可以格式化之前的日期吗? "dd MMM yyyy", 但不是"MM/dd/yyyy".

那样的东西


dt.Select/String.Format/"col >= '{0}'", new DateTime/2008, 12, 11/.ToString/"dd MMM yyyy"///

要回复问题请先登录注册