2013-07-09 1 views
0

어떻게 ActiveRecord에서 아래의 쿼리를 달성합니까?활성 레코드를 사용하여 삭제

"delete from model where date(created_at)=#{some_date}" 

여기서 created_at는 SQL datetime 필드입니다. 내가 생각할 수있는

하나의 옵션은

start_date = starting time of the day 
end_date = end time of the day 

Model.delete_all('created_at' >= start_date, 'created_at' < end_date) 

다른 깨끗한 옵션을 계산입니까?

답변

1

사용중인 데이터베이스가 MySql이고 start_date가 날짜 개체라고 가정합니다.

를 사용하여 MySQL의 DATE_FORMAT 기능

Model.delete_all("DATE_FORMAT(created_at, '%Y-%m-%d') >= ?", 
       start_date.strftime("%Y-%m-%d"))