繁体   English   中英

C#DateTimePicker时间

[英]C# DateTimePicker time

我有一个项目要求用户输入(@startdate和@enddate)

一旦他们选择了日期,他们就必须按下一个按钮。
按下按钮后,它将运行存储过程并在报告查看器中返回结果。

问题是如果我选择同一天(例如2012年5月14日)。

(@startdate和@enddate均为5/14/12),因为将其设置为00:00:00,所以不会显示任何信息。

我希望datetimepicker2(@enddate)具有时间戳记23:59:59。

如何添加23:59:59作为datetimepicker2.value的时间?

最简单的方法是将时间添加到datetimepicker2值:

DateTime value = datetimepicker2.Value.AddSeconds(86399); //86400 is 24 hours

您可以在c#中使用DateTime.AddDays(1).AddSeconds(-1)-但我不建议您这样做-看起来您应该在修改存储过程

我假设您在SQL过程中执行BETWEEN吗?

我通常使用

YourDate >= @StartDate AND YourDate < DATEADD(d, 1, @EndDate)

这是因为使用时间戳记时,您需要选择一整天(例如5/14/2012 00:00:00到5/14/2012 23:59:59,所以使用此语法是可行的,因为它包含所有从开始日期开始到结束日期结束之间的时间

当您选择与开始日期不同的结束日期时,您的存储程序是否起作用,即如果您选择5/14/2012-> 5/15/2012,它将返回5/15/2012的数据吗?

如果没有,那么您可能会看到此问题

最低价值

'2011/08/21 00:00:00'

最大值

'08 / 21/2011 23:59:59'

用法:

   var firstDate = dtpFrom.Value.Date; //  0:00:00
   var secondDate =  dtpTo.Value.Date.AddSeconds(86400 - 1); //23:59:59 - 86400 is 24 hours
   var list = Services.GetListForFilter(firstDate, secondDate);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM