2014-08-27 58 views
0

嗨即时通讯vb.net有点问题不知道真正的方向。VB.net MYSQL - 数据库中的秒数在2倍之间

程序的前端用于计算某个进程的某个停机时间的秒数。

数据库具有以下表和示例数据:

  • 状态| startdate | stopdate |秒


  • 运行27/08/2012 11时10分11秒27/08/2012 11时10分22秒11

  • 运行27/08/2012 11时10分11秒27/08/2012 11时10分22秒11
  • 运行27/08/2012十二时十四分27秒27/08/2012十二点14分57秒30

在后端的所有IM试图做的是填充标签与秒数使用datepicker日期的总和,当做查询时,我使用datepicker文本,并将时间添加到它的结尾,没有惊奇它没有工作K,也只需要开始日期进去,但不是我尝试在那段时间内,积少成多,和IM hopeing有人能帮助stopdate,这是我在下面试图代码:

Dim DTimePicker1 = DateTimePicker1.text & " 11:00:00" 
     Dim DTimePicker2 = DateTimePicker1.text & " 12:00:00" 

     cmd.Parameters.Clear() 
     cmd.CommandText = "SELECT SUM(seconds) FROM sqlccmlinestatus WHERE status = 'Running' and startdate BETWEEN @BEG AND @END" 
     cmd.Parameters.AddWithValue("@BEG", DTimePicker1) 
     cmd.Parameters.AddWithValue("@END", DTimePicker1) 
     Label70.Text = cmd.ExecuteScalar() 

任何帮助会很好。

非常感谢, 皮特

+0

如果你想'“SELECT SUM(秒)...'或之间的工作,通过使用NUMERICS(长/ INT)作为dbcolumn开始,然后存储NUMERICS而不是文本;但总结不同的记录秒看起来可疑 – Plutonix 2014-08-27 14:39:03

回答

0
Dim D1 as Date = DateTimePicker1.Value 
Dim D2 as Date = DateTimePicker2.Value 
Dim DTimePicker1 as new Date(D1.Year, D1.Month, D1.Day, 11, 0, 0) 
Dim DTimePicker2 as new Date(D2.Year, D2.Month, D2.Day, 12, 0, 0) 
cmd.Parameters.Clear() 
cmd.CommandText = "SELECT SUM(seconds) FROM sqlccmlinestatus WHERE status = 'Running' and startdate BETWEEN @BEG AND @END" 
cmd.Parameters.AddWithValue("@BEG", DTimePicker1.ToString("yyyy-MM-dd HH:mm:ss.fff")) 
cmd.Parameters.AddWithValue("@END", DTimePicker2.ToString("yyyy-MM-dd HH:mm:ss.fff")) 
Label70.Text = cmd.ExecuteScalar() 
+0

嗨感谢您的答复,得到一个错误:nvarchar数据类型转换为日期时间数据类型导致超出范围的值 – 2014-08-27 14:26:25

+0

转换nvarchar数据类型转换为日期时间数据类型导致超出范围的值 – 2014-08-27 14:27:55

+0

我对答案进行了更改。 – Psychemaster 2014-08-27 14:34:29