【发布时间】:2011-11-10 14:29:31
【问题描述】:
>main :: IO ()
main = withPostgresqlConn "host=localhost user=Rocko port=5432 dbname=Rocko" $ runSqlConn $ do
runMigration migrateAll
let compDay = C.fromGregorian 2011 11 21
match <- selectList
[TestStartDate ==. compDay,
TestEstimatedEnd ==. compDay,
TestStatus /<-. [Passed,Failed]] []
scheduled <- selectList [TestStatus ==. Scheduled] []
-- liftIO $ print scheduled
liftIO $ print match
if (L.null match == True) then (liftIO $ print "date available!!!! ") else (liftIO $ print "date not available")
return ()
我正在尝试确定特定日期是否符合此条件:不等于 TestStartDate、不等于 TestEstimatedEnd,并且 Passed 和 Failed 都不是 TestStatus 的成员。
但是,我想证明我选择的日期(应该与 TestEstimatedEnd 匹配)未能做正确的事情。它应该说 :date 不可用。那么我的逻辑有什么问题呢?
> id | firmware | version | startDate | estimatedEnd | status
>----+---------------------------+------------+------------+--------------+-----------
>1 | BCC Admin | 0.0.00.001 | 2011-11-19 | 2011-11-21 | Scheduled
>ghcifoo> main
"date available!!!! "
【问题讨论】:
-
澄清一下:当没有匹配的日期时,是否应该说日期可用?
-
是的,这就是我想要做的。
-
selectList 中的条件是合取(&&)还是析取(||)?
-
selectList 中的条件是合取的。
-
那么您正在检查具有相同开始和(估计)结束日期的东西,但这些工作通常需要几天,所以不匹配。
标签: haskell persistent yesod