"08" 我尝试了所有这些: test1 = SqlFu-6ren">
gpt4 book ai didi

c# - 我应该将什么参数与 SqlFunctions.DateName 一起使用以获得像 "MM"这样的月份?

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:48 24 4
gpt4 key购买 nike

是否可以使用 SqlFunctions.DateName(或任何其他 SqlFunctions 方法)获取两位数的月份?例如:八月 --> "08"

我尝试了所有这些:

  test1 = SqlFunctions.DateName("MM", e.Date),
test2 = SqlFunctions.DateName("m", e.Date),
test3 = SqlFunctions.DateName("mm", e.Date),

但他们都返回“八月”

还有 SqlFunctions.DatePart 但它返回一个整数,例如:SqlFunctions("mm", e.Date) 返回整数 8

最佳答案

你可以这样做:

.Select(c => DbFunctions.Right("00" + c.Date.Month, 2))

RIGHT(SQL 函数)从给定字符串返回 x 个最右边的字符(在本例中为 2 个),我们在月份前面加上 2 个零,这样如果月份有 1 个数字,则结果为“00x”,因此“返回“0x”,当月份有 2 位数字时 - 结果为“00xx”并返回“xx”。

生成的 sql 查询将只是:

RIGHT(N'00' + CASE WHEN (DATEPART (month, [Extent1].[Date]) IS NULL) 
THEN N'' ELSE CAST( DATEPART (month, [Extent1].[Date])

作为奖励,此代码不是特定于 sql-server 的,可以与其他提供程序一起使用。

关于c# - 我应该将什么参数与 SqlFunctions.DateName 一起使用以获得像 "MM"这样的月份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43172096/

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