Я не уверен, что ты хочешь сделать? Если вы хотите запросить элементы, которые происходят между определенным временем начала и окончания, вы можете использовать:
Mrsun.all(:rawtime => start_time..end_time)
Это будет генерировать SQL что-то вроде
SELECT ... FROM msruns WHERE rawtime > start_time AND rawtime < end_time;
Это отвечает на ваш вопрос?
Более полный пример:
require 'rubygems'
require 'dm-core'
require 'dm-migrations'
# setup the logger
DataMapper::Logger.new($stdout, :debug)
# connect to the DB
DataMapper.setup(:default, 'sqlite3::memory:')
class Msrun
include DataMapper::Resource
# properties
property :id, Serial
property :rawtime, DateTime
end
DataMapper.finalize.auto_migrate!
10.times do |n|
Msrun.create(:rawtime => DateTime.new(2011, 1, 1, 0, 0 , n))
end
p Msrun.all(:rawtime => DateTime.parse('2011-1-1T00:00:04+0100')..DateTime.parse('2011-1-1T00:00:07+0100'))