我有一个查询,我需要将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小时时间?
答案 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。