【问题标题】:Get the data from the given specific date to 'now' by the interval of 15 minutes以 15 分钟的间隔获取从给定特定日期到“现在”的数据
【发布时间】:2014-01-12 08:25:22
【问题描述】:

您好,我正在开发一个应用程序,用于在 C# Visual Studio 2010 中将数据从一个数据库服务器检索到另一个数据库服务器。

要求数据应按软件安装日期从数据库中检索,即特定日期,现在表示当前时间。

还有一个条件,当我们得到最旧的记录,比如2010-03-05 16:30:23,下一条记录和第一条记录的差应该是15分钟,比如下一条记录应该是2010-03-05 16:45:23。数据库每分钟有记录。

我已经尝试过以下但它不满足要求。

try
 {
   var con = new SqlConnection(Properties.Settings.Default.sConstr);
   var cmd = new SqlCommand("SELECT * from RAW_S001T01 where Date_Time >='" + time + "'", con);
   con.Open();
   var dr = cmd.ExecuteReader();
   var count = 0;
   while (dr.Read())
   {
    var Date = (dr["Date_Time"].ToString());
    var temp = Date.ToString(CultureInfo.InvariantCulture);
    var UTime=time.Split(':');
    string tempa = UTime[1].Substring(0, 2);
    time = temp +int.Parse("15");
    MessageBox.Show(time);
   }
 }
 catch (Exception ex)
 {
  MessageBox.Show(@"Error.",ex.ToString());
 }

我们如何解决这个问题?

【问题讨论】:

  • 那么到底哪一部分出了问题?它在做什么或不做什么?
  • 新“cmd”的设置似乎在您的while循环之外,所以它永远不会得到新的时间。
  • @LanceRoberts 我只是在特定日期之前获取所有记录。我希望他们在 15 分钟的间隔时间内完成
  • 好的,那么您希望它们如何分区,您的数据方案是什么?
  • 就像我的问题一样,如果我最旧的数据是时间'2010-03-05 16:30:23',那么在下一个循环运行下一条记录应该是时间'2010-03-05 16: 45:23'。我的数据方案是电表阅读器,它读取每分钟的用电量。

标签: c# sql sqldatareader data-retrieval


【解决方案1】:

只需在变量中设置 15 分钟后的时间(根据 Abhishek 的回答)。

然后处理少于该时间的所有项目。当您发现时间大于该时间的项目时,更新该时间(再增加 15 分钟)并将输出重定向到数据结构的下一部分。继续循环直到完成。

【讨论】:

    【解决方案2】:

    试试这个:
    只需修改您的 while 循环并使用此代码。

    var Date = Convert.ToDateTime(dr["Date_Time"]);
    Date = Date.AddMinutes(15);
    MessageBox.Show(Date.ToString());
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 2022-12-10
      • 2021-12-12
      相关资源
      最近更新 更多