C# 日期时间选取器时间

本文关键字:时间 选取 日期 | 更新日期: 2023-09-27 18:34:17

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

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

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

(@startdate 和 @enddate 都是 5/14/12)它不会显示任何信息,因为它设置为 00:00:00。

我希望日期时间选择器2 (@enddate) 的时间戳为 23:59:59。

如何添加 23:59:59 作为日期时间选择器2.value 的时间?

C# 日期时间选取器时间

最简单的方法是将时间添加到日期时间选择器2值:

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

您可以使用 DateTime.AddDays(1)。C# 中的 AddSeconds(-1) - 但我不建议这样做 - 看起来你应该修改你的 sproc

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

我通常使用

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

这是因为在使用时间戳时,您需要选择全天(例如 5/14/2012 00:00:00 到 5/14/2012 23:59:59),因此使用此语法有效,因为它包括开始日期开始和结束日期结束之间的所有时间

选择与开始日期不同的结束日期时,您的 sproc 是否有效,即如果您选择 5/14/2012 -> 5/15/2012,它是否返回 5/15/2012 的数据?

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

最小值

'08/21

/2011 00:00:00'

最大值

'

2011-08-21 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);