我正在使用DataTable.Select过滤日期范围内的数据表,我的条件字符串是:
"CreatedOn >='03/11/2009 00:00:00' AND CreatedOn <='03/11/2009 23:59:00'"
Run Code Online (Sandbox Code Playgroud)
此过滤器不返回任何行(即使我可以在未过滤的数据表中看到匹配的行).但是我注意到我将标准更改为(注意日/月换位):
"CreatedOn >='11/03/2009 00:00:00' AND CreatedOn <='11/03/2009 23:59:00'"
Run Code Online (Sandbox Code Playgroud)
数据表按预期过滤.显然这似乎是一个日期本地化问题,是否有一种简单的方法来格式化日期以避免这个问题?
使用这样的标准ISO格式日期时间(11月3日):
"CreatedOn >='2009-11-03 00:00:00' AND CreatedOn <='2009-11-03 23:59:00'"
Run Code Online (Sandbox Code Playgroud)
事实上,如果你想要在11月3日创建的所有记录,你应该这样做,因为你也想要在最后一刻创建的记录,例如23:59:30:
"CreatedOn >='2009-11-03' AND CreatedOn < '2009-11-04'"
Run Code Online (Sandbox Code Playgroud)
有一个快速参考这里
试试这个:
string selectString = String.Format("CreatedOn >= '{0}' AND CreatedOn <= '{1}'",
startDate.ToString(DateTimeFormatInfo.InvariantInfo),
endDate.ToString(DateTimeFormatInfo.InvariantInfo));
dt.Select(selectString);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22527 次 |
| 最近记录: |