在我的 SQLite-DB 中,我想在星期一选择所有条目。
我怎样才能用续集做到这一点?
一个测试示例:
require 'sequel'
DB = Sequel.sqlite()#'test.db')
DB.create_table(:days) do
String :text
Date :start
end
Date.today.upto(Date.today + 30){|d|
DB[:days].insert( :text => d.strftime("%Y-%m-%d day %w in week %W"), :start => d)
}
如何选择所有星期一?
在本机SQL 中,我可以这样做:
select * from days where strftime("%w", start) = "1"
使用它,我可以定义一个视图并为其选择:
DB.run('create view mondays as select * from days where strftime("%w", start) = "1"')
p DB[:mondays].all
但我想从 Sequel 中使用它。
我试过了
sel = DB[:days].filter{ start.strftime("%w", :start) == '1' }
#NoMethodError
sel = DB[:days].filter{ Sequel::SQL::Function.new(:strftime, "%w", :start) == '1' }
#SELECT * FROM `days` WHERE (1 = 0)
但没有成功。
还有其他解决方案吗?
我也在寻找一种可能性,可以按一天中的小时选择项目(所有项目都有时间戳,然后是 12:00-13:00 ...)我认为这是同样的问题,也是当天的解决方案week-selection 也将解决我的其他问题。