【发布时间】:2019-10-14 09:44:49
【问题描述】:
我一直在尝试为以下问题找到合适的解决方案。我有一个带有时间列的 SQL 表(格式为:hh:mm:ss)。它包含一个程序的开始时间。
我现在想比较从所述列到 DateTime.Now 的时间,并且只要列中的时间与现在的时间相同,就应该调用一个方法(例如)。
我现在有几个问题:
我通常使用
string startingtime = cmdx.ExecuteScalar().ToString();从 SQL 表中获取值,但我不确定在这里将时间转换为字符串是否聪明我的程序是一个 Windows 服务,并且将始终运行,我不确定在比较 SQL 表的时间和现在的时间时使用秒是否明智,因为即使是 1 秒的差异也可能意味着方法不会被调用。
我的第一次尝试是这样的:
string startingtime = cmdx.ExecuteScalar().ToString();
string timenow = DateTime.Now.ToString("HH:mm:ss");
var u1 = TimeSpan.Parse(timenow);
var u2 = TimeSpan.Parse(startingtime);
Console.WriteLine(u1 - u2);
然后我可以使用u1 和u2 之间的差异,假设它是否小于一分钟程序应该启动。
这是一个不错的解决方案,但可能有更好的方法,我期待您的解决方案。
提前致谢
【问题讨论】:
-
我是否理解正确,您获取所有行,然后在代码中决定要处理哪个?为什么不首先查询“where time x2”? (x1 和 x2 是所需的时间范围)