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 的时间?
最简单的方法是将时间添加到日期时间选择器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);