比较两个日期时间值和表中的c#1,其他是当前值

时间:2009-06-21 09:16:48

标签: c#

da = new SqlDataAdapter("SELECT ExitTime,EnterTime,name,[tag-id-st],[build-id],[room-no],tagType FROM Students,GateLogging WHERE GateLogging.tagType='student'", MyConn);
DateTime ss=dt.Rows[0][1];       
DateTime date = DateTime.Now;
int x=date.CompareTo(ss);

这是我的代码,我在这里停止了,我无法完成

请帮我将“EnterTime”表中的值与当前时间进行比较,并在gridview中显示超过10分钟当前时间的值

3 个答案:

答案 0 :(得分:0)

首先,找到您真正关心的日期 - 例如,它可能是

DateTime cutoff = DateTime.Now.AddMinutes(10);

(在顶部执行一次,而不是每行执行一次) - 然后只与这些进行比较,例如:

bool isOverdue = ss > cutoff;

您也可以使用GETDATE()DATEADD(...)DATEDIFF(...)

在数据库内执行此操作

答案 1 :(得分:0)

首先,您可以更改select查询以仅返回最近10分钟的行,并且您不需要进行比较。其次,您可以使用da.Fill(dt)将结果集复制到datatable并使用dt.Select (“...”)只过滤你的行,第三个是什么问题?你可以写

DateTime now = DateTime.Now;
if (now - ss <= TimeSpan.FromMinutes(10))
{

}

答案 2 :(得分:0)

在单元测试中遇到同样的问题我写了一个AssertEx类,其中有一些不那么挑剔的断言:

public static void AreSimilar(DateTime expected, DateTime actual, TimeSpan tolerance, string message)
{
    DateTime expectedMin = expected.Subtract(tolerance);
    DateTime expectedMax = expected.Add(tolerance);

    if (actual < expectedMin || actual > expectedMax)
    {
        throw new AssertFailedException(message);
    }
}