我在breezejs中遇到日期时间相等。
我想要做的是查询数据并仅返回自上次同步以来更改的最新记录。
...
query = query.where('ModifiedDateTime', '>=', lastSyncDate);
ModifiedDateTime是dB侧的DateTime类型,lastSyncDate是上次同步的日期时间new Date(Date.now())
这适用于当天,但不适用于当时,我想要做的是调用getTime()
函数来获取一个整数进行比较,如下所述:Beware equality tests但我无法弄清楚如何在where子句中执行此操作?
像
这样的东西query = query.where(ModifiedDateTime.getTime(), '>=', lastSyncDate.getTime());
但显然这是不可能的,还有另一种方法吗?
答案 0 :(得分:1)
浏览器DateTime不太可能与现实世界中的服务器DateTime相同。我认为您需要一种方法从服务器获取服务器同步DateTime并在您的请求中使用它。关于如何继续的建议在很大程度上取决于您如何定义lastSyncDateTime
以及您是否愿意补充客户端/服务器协议以在服务器响应中包含同步DateTime并在客户端上挖掘出来以便您可以在查询。这些工具在那里,但Breeze中没有任何原生支持这一点。
这里可能有一个很好的功能请求,用于开箱即用的breeze Web API协议增强功能。您可能建议我们扩展该协议以在响应中包含服务器DateTime(例如,在自定义标头中),并将其作为查询(并保存)结果的属性之一提供给breeze应用程序开发人员。
但要超越自己。第一步是解释您对此的需求以及如何使用它。