将 Datetime.now 与 SQL 表上的日期进行比较

发布于 2024-11-18 01:06:25 字数 1017 浏览 3 评论 0 原文

我正在尝试在 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);

但我收到错误,但我相信它来自返回。

I'm trying to write code on c# that will compare between date that i have on SQL table (table:items, column "endTime") against datetime.now and by the result - display image.

example:

if the time on the column table is before the time now.. so display on the aspx image1, else display image2.

i've tried to do that by sql command:

    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 ...
}

but i have problem with the return, and with the execution of the method... :

            int d; 
        Console.WriteLine(endTime(out d));
        if (d < DateTime.Now)
        {
            image1.Visible = true;

        }
        else
        {
            image2.Visible = true;
        }
        Console.WriteLine(d);

but i got error, but i believe it's come from the return.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

云巢 2024-11-25 01:06:26

我建议让数据库在 sql 中直接进行日期比较。

SYSDATE 可以与查询中的 EndTime 进行比较,您可以不带回不匹配的行(这允许您平等地处理结果集中的每一行),或者检查返回集中的一个简单值以查看是否时间正是在正确的时期。

i would suggest letting the database do the date comparison right in the sql.

SYSDATE can be compared to EndTime right in the query, and you can either not bring back rows that dont match (which allows you to process every row in the result set equally) or you check a simple value in the return set to see if the time is in the right period.

北斗星光 2024-11-25 01:06:25

使用以下代码代替 if (d if (d

Instead of if (d < DateTime.Now) use this: if (d < DateTime.Now.Date)

浮世清欢 2024-11-25 01:06:25

难道您不应该从查询中抛出 DateTime 而不是 int 吗?此外,堆栈跟踪/调试器应该为您提供异常的行号。你能发布堆栈跟踪吗?

Shouldn't you be casting out a DateTime from your query and not an int? Also, the stack trace/debugger should give you the line number of the exception. Can you post the stack trace?

梦巷 2024-11-25 01:06:25
  1. 您的 sql 查询返回什么(我相信有刻度)?
  2. 如何将 int 转换为 DateTime,请显示代码,请将
  3. SqlConnection 封装在 using() 块中,如下所示:
using (SqlConnection connection = new SqlConnection(...))
  1. What is returned by your sql query (I believe ticks)?
  2. How do you convert int into DateTime, show a code please
  3. Enclose SqlConnection in using() block as shown below:
using (SqlConnection connection = new SqlConnection(...))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文