【问题标题】:Select records in date range using Yesod.Persist使用 Yesod.Persist 选择日期范围内的记录
【发布时间】:2018-06-01 17:01:57
【问题描述】:

我需要选择表中列日期介于 2 个日期之间、日期之前或日期之后的所有记录。

我可以看到selectList 函数接受一个参数Filter,这似乎是我需要按日期范围选择记录,但我无法确定我需要在过滤器参数中放入什么按范围或日期前后选择。

【问题讨论】:

  • 您能否添加一个简化的 DB 架构以及一个缩小的工作示例(如果可能,使用 Stack 解释器)?
  • 你读过这个吗? yesodweb.com/book/persistent

标签: sql haskell yesod


【解决方案1】:

所以我发现你可以通过添加过滤器来获取日期之前和之后的记录

[TableDateColumn <=. UTCTime]

要获取日期之前的记录,您可以使用

getBeforeDate = do
    now <- liftIO getCurrentTime
    selectList [TableDateColumn <=. Just now] []

我尚未对此进行验证,但由于 selectList 采用过滤器列表,因此在要选择的范围之间进行选择是有意义的

selectList [TableDateColumn >=. timeStart, TableDateColumn <=. timeEnd] []

【讨论】:

    猜你喜欢
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多