WPF:使用“时间”文本框以秒为单位搜索数据库

时间:2019-01-31 10:40:29

标签: c# sql-server wpf time textbox

我有一个数据表,其中的列=以秒为单位显示了总时间。 (由于我可能使用Total来计算时间(以秒为单位,可能会超过24小时,因此会返回DateDiff),如下所示:

INT

数据表如下:

SET tmTotals = DATEDIFF(Second, tmStartTime, tmEndTime)

在我的WPF应用程序中,我想使用两个StartTime EndTime Total ----------------------------------------------------------- 2018-12-03 00:00:19.257 2018-12-04 00:00:23.288 86404 2018-12-02 10:13:32.586 2018-12-04 10:14:57.298 172885 2018-12-04 12:07:50.636 2018-12-04 18:04:25.526 21395 2018-12-04 03:15:25.061 2018-12-04 13:15:34.665 36009 2018-12-03 20:56:12.947 2018-12-04 03:11:07.992 22495 2018-12-02 00:11:46.020 2018-12-04 00:29:55.051 173889 在表中的两个textboxes之间进行搜索。我希望这些Total的格式设置为textboxes(时间可能超过100小时)。如何将其设置为hhh:mm:ss值,以便它在StoredProcedure中可用?

WPF app image: DataTable searching on active time

我使用的时间少于24小时,但现在无法使用:

Int

计算总时间,并在我的WPF应用程序中做到了:

CONVERT(varchar, DATEADD(second,  DATEDIFF(second, tmStartTime, tmEndTime), 0), 108)

和代码隐藏:

<TextBox Name="Activeto" Text="{Binding Path=TotalEnd,  StringFormat= \\hh\\:mm\\:ss }" Width="60"/>

TimeSpan timeSpanStart = TimeSpan.Parse(Activefrom.Text); 转换为string,可用于在时间之间进行搜索。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。最后,我仅将时间输入textboxes分隔为三个独立的textboxes,因此:hhmmss。在后面的代码中,我计算了输入到秒的时间并将其添加:

int TotalBegin = (int.Parse(TotalStarthh.Text) * 3600) + (int.Parse(TotalStartmm.Text) * 60) + (int.Parse(TotalStartss.Text));
int TotalEnd = (int.Parse(TotalEndhh.Text) * 3600) + (int.Parse(TotalEndmm.Text) * 60) + (int.Parse(TotalEndss.Text));

也许不是最好的解决方案,但它对我有用!