将Datetime.now与SQL表上的日期进行比较
本文关键字:日期 比较 Datetime now SQL | 更新日期: 2023-09-27 18:00:42
我正在尝试在c#上编写代码,将SQL表(表:items,列"endTime")上的日期与datetime.now以及结果显示图像进行比较。
示例:
如果列表上的时间在现在的时间之前。。因此在aspx图像1上显示,否则显示图像2。
我已经尝试过通过sql命令:来做到这一点
private DateTime endTime(out int lastDate)
{
SqlConnection connection = new SqlConnection("Data Source=******;Initial Catalog=******;User ID=*****;Integrated Security=False;");
string commandtext = "SELECT TOP(1) endTime FROM items";
SqlCommand command = new SqlCommand(commandtext, connection);
connection.Open();
SqlCommand command2 = new SqlCommand(commandtext, connection);
lastDate = (int)command2.ExecuteScalar();
connection.Close();
return ...
}
但我对返回和方法的执行有问题…:
int d;
Console.WriteLine(endTime(out d));
if (d < DateTime.Now)
{
image1.Visible = true;
}
else
{
image2.Visible = true;
}
Console.WriteLine(d);
但我犯了错误,但我相信这是回报。
使用以下内容代替if (d < DateTime.Now)
:if (d < DateTime.Now.Date)
难道不应该从查询中抛出DateTime而不是int吗?此外,堆栈跟踪/调试器应该为您提供异常的行号。你能发布堆栈跟踪吗?
- 您的sql查询返回了什么(我相信是滴答声)
- 如何将
int
转换为DateTime
,请出示代码 - 将SqlConnection封装在
using()
块中,如下所示:
using (SqlConnection connection = new SqlConnection(...))
我建议让数据库在sql中进行日期比较。
SYSDATE可以在查询中与EndTime进行比较,您可以不带回不匹配的行(这允许您平等地处理结果集中的每一行),也可以检查返回集中的一个简单值,看看时间是否在正确的周期内。