Sql server 如何在MVC5中匹配从数据库获取的字符串中的特定字符串?
因此,我正在构建一个项目,需要从数据库中获取日期,并基于给定的月份, 因为我需要找到在给定月份过生日的客户。我有一个在SQL server中运行得非常好的查询,但在Linq中没有得到它的等价物 这是我在SQL中运行的查询Sql server 如何在MVC5中匹配从数据库获取的字符串中的特定字符串?,sql-server,linq,asp.net-mvc-5,Sql Server,Linq,Asp.net Mvc 5,因此,我正在构建一个项目,需要从数据库中获取日期,并基于给定的月份, 因为我需要找到在给定月份过生日的客户。我有一个在SQL server中运行得非常好的查询,但在Linq中没有得到它的等价物 这是我在SQL中运行的查询 SELECT * FROM CustReg WHERE DOB LIKE '_____month%' 我需要匹配那个月的数据,因为它应该位于DOB字符串的第6位 Demo Database- Id Name DOB 1 AB 1995-02-2
SELECT * FROM CustReg
WHERE DOB LIKE '_____month%'
我需要匹配那个月的数据,因为它应该位于DOB字符串的第6位
Demo Database-
Id Name DOB
1 AB 1995-02-20
2 CD 1998-04-13
4 EF 1991-02-15
5 GH 1988-06-8
6 IJ 2000-02-09
查询-选择生日在2月1日的所有员工。
预期输出-AB、EF、IJ
PS-我已采用DOBstring
的数据类型,而不是Date
或DateTime
。
我还有从输入日期获取的字符串中的月份(例如'02'代表二月) 如果我正确理解了您的问题,以下代码可能会有所帮助 首先创建月份的枚举
public enum Month
{
Jan=1,Feb,Mar,Apr,May,Jun,July,Aug,Sep,Oct,Nov,Dec
}
现在使用以下查询获取您想要的内容
Month requiredMonth = Month.Feb;
var res = CustReg.Where(x => (Month)Enum.Parse(typeof(Month), x.DOB.Substring(5, 2)) == requiredMonth).Select(x => x.Name);
foreach (var item in res)
{
Console.WriteLine(item);
}
您可以分享您的输入和预期输出吗?@AnkitTiwari:为什么不在sql查询中使用
MONTH(您的_日期)
来匹配您的月份??对于LINQ
我认为您的问题与此@Irfan相同,因为我将字符串作为该字段的数据类型,而不是日期或日期时间。@xXx我已编辑了我的问题,请再次检查您的数据库并将DOB存储为正确的日期类型。