加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Mongoid中的日期查询

发布时间:2020-12-17 01:19:05 所属栏目:百科 来源:网络整理
导读:这已被问了很多,但我仍然面临一些问题. 我收到日期并存储为日期.我需要查询大于和小于,所以我将其更改为时间,再次尝试,但我得到了奇怪的结果. 我这样做 Class.where(:event_date.gt = Time.parse(Date.today)) 而我正在创造旧纪录,20世纪40年代,60年代和其他
这已被问了很多,但我仍然面临一些问题.

我收到日期并存储为日期.我需要查询大于和小于,所以我将其更改为时间,再次尝试,但我得到了奇怪的结果.

我这样做

Class.where(:event_date.gt => Time.parse(Date.today))

而我正在创造旧纪录,20世纪40年代,60年代和其他人.我尝试通过在最后添加.utc来转换时间,仅与Date.today进行比较,但到目前为止还没有解决问题.这是Mongoid生成的选择器

selector: {:date_utc=>{"$gte"=>Sat Sep 10 21:00:00 UTC 2011}},

我以“2011-09-11”格式收到日期并将其存储在时间字段中.尝试解析时间utc,没有运气.

任何的想法?我正在使用Mongoid 2.0.2.以后的版本似乎与我正在使用的其他扩展不兼容.

[UPDATE]

所以问题在于1970年之前的旧日期显然.我现在的问题是如何处理它们.

解决方法

这是Mongo中的已知错误.见 ISSUE 405

原因是Mongo使用无符号数来存储日期,所以在纪元之前的任何东西都会延伸到未来.

幸运的是,此问题已针对今天发布的稳定版本2.0进行了修复.升级到此版本应该可以解决您的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读