我有这个数据库,你可以看到:
在我的代码中,我想返回一些具有日期时间条件的记录,如您所见:
private void lblSubmitDate_EditValueChanged(object sender, EventArgs e)
{
DateTime subDateTime = Convert.ToDateTime(lblSubmitDate.EditValue).Date;
gridControlDocument.DataSource =
new BindingList<Document>(_documentRepository
.Get()
.Where(i => i.SubmitDateTime==subDateTime)
.ToList())
{ AllowNew = true };
}
但没有记录返回。
我输入的图片:
sqlprofiler中的结果:
exec sp_executesql N'SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Number] AS [Number],
[Extent1].[Class] AS [Class],
[Extent1].[Discipline] AS [Discipline],
[Extent1].[Unit] AS [Unit],
[Extent1].[SubmitDateTime] AS [SubmitDateTime]
FROM [dbo].[Documents] AS [Extent1]
WHERE [Extent1].[SubmitDateTime] = @p__linq__0',N'@p__linq__0 datetime2(7)',@p__linq__0='2016-07-27 00:00:00'
答案 0 :(得分:2)
乔希说的是对的。
您将永远不会检索任何值,因为您正在解析 DateTime,但只接受Date部分。这意味着时间 部分将是00:00:00:
您必须使用$("#39aa995f-2ba5-4316-9c79-ef5b3d58d63d").velocity({
translateX: [4000, -600],
},{
duration: 9000,
easing: "lnear",
delay: 0
});
才能获得日期
EntityFunction.TruncateTime
答案 1 :(得分:1)
您将永远不会检索任何值,因为您正在解析DateTime
,但只接受Date
部分。这意味着Time
部分将是00:00:00:
DateTime subDateTime = Convert.ToDateTime(lblSubmitDate.EditValue).Date;
当您尝试选择行时,您将与具有时间组件的SubmitDateTime
进行比较:
gridControlDocument.DataSource = new BindingList<Document>(_documentRepository.Get().Where(i => i.SubmitDateTime==subDateTime).ToList()) { AllowNew = true };
您需要将数据库字段中的Date
部分与用户选择中已解析的Date
进行比较。