gpt4 book ai didi

c# - 带时区的 linq-to-sql 分组

转载 作者:行者123 更新时间:2023-11-30 17:14:08 25 4
gpt4 key购买 nike

我有一个按日期时间对结果进行分组的 linq-to-sql 查询,如下所示:

var TheQuery = from ....
where ....
group a by a.TheDateTime.Date in TheGroups

问题在于,这按数据库中以 UTC 格式存储的实际日期进行分组。假设我想根据用户的时区按日期分组。因此,例如,如果他在 PST 时区,则按“UTC 负 8 小时”或任何其他偏移量分组。

感谢您的建议。

最佳答案

如果您无论如何都能得到所有信息,我会坦率地将其带回客户端并在 LINQ to Objects 中进行分组。这样您就可以专注于使用一个平台的日期和时间 API - 就时区而言,正确使用一个 API 已经够难了,更不用说两个了。

(顺便说一句,这也意味着您可以为此使用您喜欢的任何 .NET API - 例如 Noda Time ;)

所以我会在分组之前放置您可以执行的所有过滤和投影,然后使用 AsEnumerable() 强制在本地执行其余部分。

不要忘记,您几乎肯定不能只增加或减少 8 小时,除非用户真的在不使用夏令时的时区(并且没有历史上)。您还确定对所有数据应用相同的时区是合适的吗? (它可能很好 - 只是检查。)

关于c# - 带时区的 linq-to-sql 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9071701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com