如何使用SqlFunctions.DateName获取小时部分

时间:2015-07-17 09:08:39

标签: c# linq entity-framework

我有一个查询,我需要将24小时格式的实时日期时间属性的小时与24小时的时间字符串进行比较

示例:

var time = "14:00";
var results = db.Table.Where(item => 
    SqlFunctions.DateName("HH:mm", item.DateTimeProperty) == time);

虽然这会抛出以下内容

{“'HH:mm'不是'SqlServer.DATENAME'函数中DATEPART参数的有效值。”}

如何使用SqlFunctions将datetime属性转换为24小时时间?

1 个答案:

答案 0 :(得分:5)

您使用SQL Server的DateName功能并不完全正确。请试试这个:

var time = "14:00";
var hour = Int32.Parse(time.Substring(0, 2));
var minute = Int32.Parse(time.Substring(3, 2));
var results = db.Table.Where(item =>
    SqlFunctions.DateName("hh", item.DateTimeProperty) == hour &&
    SqlFunctions.DateName("n", item.DateTimeProperty) == minute);

另见MSDN Page

相关问题