作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,就这样吧。我有一个数据库,其中有一列时间戳。 “一天”的开始是早上 7 点。因此,就今天而言,它将在 2012 年 6 月 25 日 0700 开始,并在 2012 年 6 月 26 日 0700 结束。我需要在 24 小时的时间范围内进行计算。现在,我正在考虑执行一个查询,获取从 0700 + 24 小时开始的所有信息,但我并不是 100% 知道如何表达所述查询。感谢您提供的所有帮助。
最佳答案
警告 - 代码是我凭空想象出来的,没有 Visual Studio,也没有正确的错误处理,但这应该向您展示如何使用参数化查询正确设置必要的参数值。这可能包含语法错误,但同样,它应该向您展示足以让您继续前进的内容。我添加了注释来解释相关代码。
private System.Data.DataTable ExecuteSql(DateTime BusinessDate)
{
System.Data.DataTable ReturnValue = new System.Data.DataTable;
string sql = "Select * From myTable WHERE TimestampColumn >= @StartDate AND TimestampColumn < @EndDate";
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDb.Command(connectionString, sql);
// For start date, we can't assume the user has passed in a date with a
// midnight time, so first, use DateTime.Date to get JUST the date at midnight,
// then add 7 hours to get to the desired start time.
// For example, if the calling code had passed in 1/1/2001 8:00 AM we would use
// the .Date property to get it to 1/1/2001 12:00 AM
// and then add 7 hours.
cmd.Parameters.Add(@StartDate, BusinessDate.Date.AddHours(7));
// The end date - same logic, but instead of adding 7 hours, add 31
// (24 hours + 7 hours = 31 hours)
cmd.Parameters.Add(@EndDate, BusinessDate.Date.AddHours(31)); // 24 + 7
System.Data.OleDb.OleDbDataAdapter ad = new System.Data.OleDb.OleDbDataAdapter(cmd);
ad.Fill(ReturnValue)
return ReturnValue;
}
关于c# - 如何将日期重叠为单个 "day",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11197862/
我是一名优秀的程序员,十分优秀!