Breeze:仅在DateTime类型上按日期过滤

时间:2014-02-06 11:03:39

标签: odata breeze

我将以下谓词传递给EntityQuery,但即使我有指定日期的数据,也没有返回结果:

// query equals 'Wed Feb 05 2014 00:00:00 GMT+0000 (GMT Standard Time)'
Predicate.create('createdDateTime', '==', query);

这将在oData中创建以下查询:

$filter=CreatedDateTime%20eq%20datetime%272014-02-05T00%3A00%3A00.000Z%27

数据库中保存的数据也有时间值:2014-02-05 14:18:02.590,所以我猜这就是没有返回数据的原因?所以我的问题是,我怎样才能过滤Date值,忽略时间?

1 个答案:

答案 0 :(得分:2)

DateTime查询非常棘手 无处不在 ,尤其是当您认为服务器时间和客户端时间通常未对齐时。时区考虑可能导致疯狂。这不是一个真正的微风问题本身

考虑到这些警告,请考虑如何最好地将您关注的日期(使用greaterThan / lessThan)逻辑括起来。如果通过在UTC中存储某种标准化的仅限日期值来完全消除时间组件,则会变得非常容易。希望我知道更好的答案。

相关问题