如何构造ObjectQuery的Where子句,我将仅查询DateTime列的Time部分?我尝试过以下但是没有用。我在转换时遇到无效的异常。
ObjectQuery<Item> _Query = ItemEntities.CreateQuery<Item>("Item");
_Query = _Query.Where("Convert(VARCHAR,it.START_TIME,114) > '{0}'", startTime.TimeOfDay);
另外,我使用Oracle作为数据库。所以我尝试to_char
而不是转换,但我仍然得到同样的错误。
感谢。
答案 0 :(得分: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');