0

如何构造 ObjectQuery 的 Where 子句,我将在其中仅查询 DateTime 列的 Time 部分?我已经尝试了以下方法,但它不起作用。我在 Convert 上遇到无效异常。

 ObjectQuery<Item> _Query = ItemEntities.CreateQuery<Item>("Item");
_Query = _Query.Where("Convert(VARCHAR,it.START_TIME,114) > '{0}'", startTime.TimeOfDay);

另外,我使用 Oracle 作为数据库。所以我尝试to_char而不是转换,但我仍然得到同样的错误。

谢谢。

4

1 回答 1

0

您应该能够使用日期获取时间部分TO_CHAR,然后将其转换为系统类型,例如

TO_DATE(TO_CHAR(it.START_TIME,'HH24:MI:SS'), 'hh24:mi:ss') from dual

如果ObjectQuery不支持TO_CHAR您尝试使用Extract并手动建立时间,例如

TO_DATE(EXTRACT(HOUR FROM it.START_TIME) || ':' || EXTRACT(MINUTE FROM it.START_TIME) || ':' || EXTRACT(SECOND FROM it.START_TIME) FROM DUAL, 'HH24:MI:SS');
于 2013-05-14T11:35:41.570 回答