2011-09-10 3 views

답변

1

살릴의 대답을 바탕으로, 나는 sqlite에서 작동하도록 다음을 유도했습니다.

arr = [] 
(0..14).each { |i| arr << (Date.today + i.day).yday } 
@users = User.find(:all, :conditions => ["cast(strftime('%j', DOB) AS int) in (?)", arr]) 
0

이것은 비교를 위해 날짜 형식을 변경하는 데 도움이 될 수 있습니다. 기본적으로 Date.today.year가 적용됩니다.

   Date.strptime("{ #{DOB.month}, #{DOB.date} }", "{ %m, %d }"). 

Date.strptime는 ("{9, 10}", "{%의 m은, % D는}")를 직접 비교를 위해 몇 가지 코드를 얻는 경우에 게시 마십시오

<Date: 2011-09-10 (4911629/2,0,2299161)> 

을 제공합니다.

+0

동일한 작업을 수행 할 SQL 방법이 있습니까? 내 조건에 루비 코드를 붙일 수 없기 때문에 –

1

당신은

뭔가 당신이 루비

에서 MySQL의 기능에

this을 넘기기 위해

SELECT FROM users 
     WHERE DAYOFYEAR(dob)in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14) 

당신은 작동 중 WEEK 같은 기능을 사용할 수 있습니다 다음과 같이 당신의 DOB 열을 MySQL의 방법을 수행해야

arr=[] 
(0..13).each{|i| arr << (Date.today+i.day).day } 
User.find(:all, :conditions => ["DAYOFYEAR(DOB) in (?)", arr]) 
관련 문제