【问题标题】:finding difference between 2 dates stored in day,month,dd,yyyy查找存储在日、月、日、年年的 2 个日期之间的差异
【发布时间】:2011-09-07 04:40:42
【问题描述】:

我使用了 DATEDIFF 函数,但由于它需要 yyyy/mm/dd 这个代码给出了错误的值,因为我在这个格式日、月、dd、yyyy 中存储了日期时间选择器中的日期

    private void button3_Click(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
DataSet ds1 = new DataSet();
DataSet ds2 = new DataSet();
DBHandling db = new DBHandling();

db.GetDataset(" select JoiningDate from Emp where name = '" + textBox2.Text + "'", ref ds);
db.GetDataset(" select LeavingDate from AddDate where name = '" + textBox2.Text + "'", ref ds1);

string date1, date2;
date1 = ds.Tables[0].Rows[0][0].ToString();
date2 = ds1.Tables[0].Rows[0][0].ToString();
db.GetDataset("select DATEDIFF(day,2008/1/15,2008/1/12) ", ref ds2);
textBox5.Text = ds2.Tables[0].Rows[0][0].ToString();
    }

那么我应该怎么做才能正确选择两个日期之间的差异,即两个日期之间的天数,提前谢谢

【问题讨论】:

  • 这肯定不是纯 C 代码。我猜这是 C#,对吗?
  • 重新标记。我们应该有类似“looks-like-c”或“looks-like-java”这样的标签。)

标签: c#


【解决方案1】:

我建议查找Timespan

获取您的两个日期,然后使用时间跨度从另一个中减去一个。然后时间跨度对象可以告诉你有多少秒、天、小时等。

如果日期采用两种不同的格式,则将它们转换为相同的格式。您可以在 SQL 中使用 CAST 或 CONVERT 或使用 C# 来执行此操作。

这是一个很好的link on formatting dates.

此外,您的 SQL 很容易受到 SQL 注入攻击。您至少应该使用参数化查询。

【讨论】:

  • 日期格式相同,我正在使用这样的转换,但我收到错误 CONVERT(string(24),date1,120);而且我不知道如何在这里使用它,我使用的是 120,所以我可以使用 DATEDIFF
【解决方案2】:

您可以使用Time Period Library for .NETDateDiff 实用程序。

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 1970-01-01
    • 2022-10-02
    • 1970-01-01
    • 2021-03-11
    • 2013-07-17
    • 2016-03-22
    相关资源
    最近更新 更多