如何在生日那天搜索数据库?

时间:2016-03-23 13:27:56

标签: asp.net-mvc entity-framework

我想在生日那天搜索,但我不能这样做 这就是我试过的:

类别:

$state.go(url);

条件声明:

[Required] 
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 
[Display(Name = "Birthdate")] 
[DataType(DataType.Date)] 
public DateTime Birthdate { get; set; }

4 个答案:

答案 0 :(得分:0)

使用:

db.Class1.Where(x => x.Birthdate.Day == Convert.ToInt32(search)).ToList());

答案 1 :(得分:0)

如果您想按完整日期搜索:

return View(db.Class1.Where(x => x.Birthdate.Date == Convert.ToDateTime(search).Date)).ToList());

答案 2 :(得分:0)

尝试拆分搜索日期:

var day = search.Date;
var month = search.Month;
var year = search.Year;

db.Class1.Where(x => x.Birthdate.Day == day && x.Birthdate.Month == month && x.Birthdate.Year == year).ToList());

答案 3 :(得分:0)

这种情况正在发生,因为您将出生日期存储为日期时间。如果您只是将它存储为日期,那将会好得多,除非您实际记录的是出生时间!您可以将实体框架配置为使用adding a convention的日期类型。

完成后,装饰您的出生日期字段:

public class Person {
    //...

    [DataType(DataType.Date)]
    public DateTime Birthdate { get; set; }

完成此操作后,您的搜索将按预期工作,因为时间组件不再存储在数据库中。