我正在使用 Ruby on Rails(服务器端)和 iOS6(客户端)做一个 RESTFul 应用程序。通信是使用 JSON 完成的。
@notifications = @update[:notifications]
if @notifications
@last_id = @notifications[:last_id]
@last_update = @notifications[:last_update]
@new_notif = OrgNotification.where('id > ?',@last_id)
@updated_notif = OrgNotification.where('updated_at != ?',@last_update )..where('id <= ? AND ? < updated_at',@last_id,@last_update )
end
在这段代码中,我想放入 @updated_notif 变量,所有通知的 id 都小于我已经看到的最后一个通知和一个 update_at,它在 [:last_update] 中传递的方式之后。我的问题是,在两个日期相等的情况下,我得到了那一行。
我试过了:
OrgNotification.where('id <= ? AND ? < updated_at',@last_id,@last_update ).where('updated_at NOT IN (?)', @last_update)
OrgNotification.where('id <= ? AND ? < updated_at',@last_id,@last_update ).where('updated_at != ?', @last_update)
OrgNotification.where('id <= ? AND ? < updated_at AND updated_at != ?',@last_id,@last_update,@last_update )
这是 SQL:
SELECT "org_notifications".* FROM "org_notifications" WHERE (id <= '2' AND '2013-06-02 21:04:13 UTC' < updated_at) AND (updated_at NOT IN ('2013-06-02 21:04:13 UTC'))
如果日期不同,无论是更小还是更大,它都可以正常工作。我该如何解决这个问题?有什么我可以尝试的吗?
谢谢
编辑
我从终端去了数据库,看到了这个。
2013-06-02 21:04:13.834167|2013-06-02 21:04:13.834167
我的问题在于精度。我怎样才能将此精度发送给我的客户?
我试过 .to_r、.to_a、.to_s。
"updated_at": <%= notif.updated_at{here} %>
它可以作为字符串使用,因为我只使用它在服务器端进行比较。