gpt4 book ai didi

c# - 如何从 Linq to SQL 中的日期时间列获取月份名称?

转载 作者:太空狗 更新时间:2023-10-29 21:29:23 25 4
gpt4 key购买 nike

我的表中有一个 DateTime 列。

在 Linq to SQL 查询中,我只需要该字段的月份部分

如何为此编写 Linq 查询?

最佳答案

嗯,我可以立即想到三个选项:

  • 拉回整个DateTime,然后提取月份并在客户端格式化
  • 使用 DateTime.Month 从数据库中提取月份,然后在客户端格式化
  • 尝试使格式(转换为文本)适用于数据库

就我个人而言,我不会尝试第三种选择 - 我觉得它不太可能奏效,至少在不付出很多努力的情况下。

我怀疑我实际上只是拉回DateTime,然后在客户端做一切。这很容易做到,而且一定会奏效。我希望 DateTime.Month 可能 工作,但您不会节省很多 网络带宽,而且您会得到服务器做的工作可能对客户端来说同样容易。

请注意,如果您仍希望将结果作为查询,则可以使用 AsEnumerable 强制在客户端完成查询的其余部分。例如:

var query = db.Customers
.Where(c => c.OrderCount > 500) // Or whatever query you want
.Select(c => new { c.Name, c.FirstOrder })
.AsEnumerable() // Do the rest of the query on the client
.Select(c => new { c.Name, c.Month = c.FirstOrder.ToString("MMM") });

编辑:如评论中所述,如果它实际上会影响结果,则在服务器端使用DateTime.Month 是有意义的,例如

var query = db.Customers.Where(c => c.FirstOrder.Month == 1)
...

...但在那些情况下,我希望它是重要的数值,而不是月份的名称

关于c# - 如何从 Linq to SQL 中的日期时间列获取月份名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9555497/

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