3

如何在这里传递日期时间值?

ObjectQuery<Item> _Query = ItemEntities.CreateQuery<Item>("Item");
_Query = _Query.Where("(it.StartDate >= 11/4/2009 5:06:08 PM)");

我上面的示例代码似乎确实有效。

即使有了这个

ObjectQuery<Item> _Query = ItemEntities.CreateQuery<Item>("Item");
_Query = _Query.Where("(it.StartDate >= \"11/4/2009 5:06:08 PM\")");

我在 EDM 中遇到类型转换错误。

4

2 回答 2

5

以下应该有效:

ObjectQuery<Item> _Query = ItemEntities.CreateQuery<Item>("Item");
_Query = _Query.Where("(it.StartDate >= DATETIME'11/4/2009 17:06:08')");

有关 ESQL 查询中文字的更多信息,请参阅文档

于 2009-11-04T09:22:38.897 回答
5

对我来说不幸的是@pmarflee 的回答不起作用。我找到了另一个对应于MSDN的解决方案:

日期部分必须采用以下格式:YYYY-MM-DD,其中 YYYY 是 0001 到 9999 之间的四位数年份值,MM 是 1 到 12 之间的月份,DD 是对给定月份 MM 有效的日期值。

时间部分的格式必须为:HH:MM[:SS[.fffffff]],其中 HH 是 0 到 23 之间的小时值,MM 是 0 到 59 之间的分钟值,SS 是 0 到 59 之间的秒值ffffff 是 0 到 9999999 之间的小数秒值。所有值范围都包括在内。小数秒是可选的。除非指定了小数秒,否则秒是可选的;在这种情况下,需要几秒钟。当未指定秒或小数秒时,将使用默认值零。

DATETIME 符号和文字有效负载之间可以有任意数量的空格,但不能有新行。

DATETIME'2006-10-1 23:11'
DATETIME'2006-12-25 01:01:00.0000000' -- 与 DATETIME'2006-12-25 01:01' 相同

和代码本身:

DateTime dateTimeValue = DateTime.Now;
// ESQL DATETIME format MUST be <yyyy-MM-dd HH:mm> format                                 
_Query = _Query.Where(string.Format("(it.StartDate >= DATETIME'{0:yyyy-MM-dd HH:mm}')",dateTimeValue);
于 2012-02-13T16:40:44.517 回答