2011-01-22 35 views
5

Cho phép nói rằng tôi muốn so sánh ngày tháng chỉ có hai cột datetime trong 1 bản ghi. Vì vậy, tôi không muốn thời gian xem xét.Rails 3, chỉ so sánh ngày của hai cột datetime trong đường ray

I.e.

xem_date và updated_at (tôi đã thêm datatate) là hai định dạng ngày giờ, nhưng tôi chỉ muốn xem chúng có xảy ra trong cùng một ngày hoặc ngày cách nhau không. Vấn đề với datetime là so sánh thời gian của nó, mà chỉ là quá cụ thể đối với tôi ngay bây giờ.

Cảm ơn

-Elliot

Trả lời

7

Khai báo một thuộc tính mới có chứa chỉ ngày:

class WhateverModel < ActiveRecord::Base 
    ... 
    def viewed_date_only 
    viewed_date.to_date 
    end 
end 

Sử dụng mà để so sánh của bạn trong bộ điều khiển hoặc bất cứ nơi nào.

0

Bạn chỉ có thể so sánh ngày của đối tượng mà không so sánh thời gian như sau: - ngày bắt đầu: - "2015-04-06 15:31:43 +0530" end_date: - "2015-04-16 15:31: 43 +0530 " post_review.all.where (" (created_at :: date> =: start_date) AND (created_at :: date < =: end_date) ", start_date: start_date.strftime ("% Y-% m-% d "), end_date: end_date.strftime ("% Y-% m-% d "))

Truy vấn bên trên nhận tất cả hồ sơ được thực hiện betwwen 6 đến 16 tháng 4

Các vấn đề liên quan