2010-06-03 7 views
2

start_at DateTime이 오늘 날짜보다 크거나 같을 때 이벤트에 조건을 사용하려고합니다. 다가오는 이벤트를 나열하고 싶지만 이미 통과 한 경우 곧 예정된 이벤트가 아닙니다.DateTime과 현재 날짜 비교

나는이 :

@appointments = Event.find(:all, :conditions => ['move_id = ? AND start_at = ?', @move.id, Date.today]) 

내가 여기에 사과와 오렌지를 비교 할 수있다 생각합니다. 던지거나 오류가 발생하지 않으며, 예상 한대로 작동하지 않습니다.

도움말! 미리 감사드립니다.

+0

그것이하는 일을하지 않으면 어떻게됩니까? – theIV

+0

죄송합니다. 그것은 협회에 따라 이벤트를 가져 와서 움직이지만 start_at의 상태를 인정하지 않는 것 같습니다. 그것은 날짜 정보를 가져 오지만 비교하지는 않습니까? – looloobs

답변

3

시도 :

@appointments = Event.find(:all, :conditions => ['move_id = ? AND start_at >= ?', @move.id, DateTime.now]) 

이상한 내가 날짜 시간 현재 # 문서를 찾을 수 없다는 것입니다.

이 테스트에서는 Postgres를 사용하고 있습니다. 당신이 말한대로

>> Event.last.created_at.class 
=> Time 
>> Event.find(:first, :conditions => ['created_at >= ?', DateTime.now]).valid? 
=> true 

마이그레이션 필드 코드

t.datetime "created_at", :null => false 
+0

감사합니다. 실제로 시도해 보았습니다. DateTime을 가져 오는 동안 현재 두 가지를 비교하지는 않습니다. – looloobs

+0

그 start_at 열 유형은 무엇입니까? – retro

+0

start_at 열은 DateTime입니다 – looloobs

0

는 start_at 아마도 오늘 날짜로 이벤트의 start_at을 확인했다 운영자에 문제가 있었다, 오늘의 날짜보다 크거나

Evento.find(:all, :conditions => ['start_at >= ?', DateTime.now]) 

mysql을 사용하는 경우 "start_at> = CURRENT_DATETIME"또는 이와 유사한 내용을 사용할 수도 있습니다.