F#LINQ lastOrDefault unix Epoch
发布时间:2020-12-15 21:04:23 所属栏目:安全 来源:网络整理
导读:我正在用F#学习LINQ.我想知道如何使用lastOrDefault. 如果我有一个名为Days的SQL Server数据表,它存储了一些日期,我想写一个查询来选择表的最后一个日期,如果没有记录,我想返回unixEpoch,即时间00: 1970年1月1日00:00 UTC. let lastDate = query { for day
我正在用F#学习LINQ.我想知道如何使用lastOrDefault.
如果我有一个名为Days的SQL Server数据表,它存储了一些日期,我想写一个查询来选择表的最后一个日期,如果没有记录,我想返回unixEpoch,即时间00: 1970年1月1日00:00 UTC. let lastDate = query { for day in days do lastOrDefault } 如果数据表中没有记录,请告诉我如何返回unixEpoch. 谢谢, 解决方法
如果数据表不为空,则lastOrDefault运算符返回最后一个日期.否则,它返回默认值
DateTime,恰好是DateTime.MinValue.
由于您无法更改此默认值,因此最好检查查询结果是否为默认值并返回查询外部: let lastDate = let d = query { for day in days do lastOrDefault } if d = DateTime.MinValue then new DateTime(1970,1,DateTimeKind.Utc) else d 但是,返回Unix Epoch并不是F#处理特殊情况的方式.如果数据表中没有记录,则返回None更清楚,并且处理此选项值以处理意外情况也更容易: let lastDate = let d = query { for day in days do lastOrDefault } if d = DateTime.MinValue then None else Some d match lastDate with | None -> (* Process the exceptional case *) | Some d -> (* Do something with d *) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读