【发布时间】:2015-02-02 15:51:47
【问题描述】:
我有一个简单的预订系统。 ReservationObject 是一个扁平结构,由 StartDate、EndDate、Resource 等属性组成。
我正在尝试获取资源使用情况报告。对于此报告,我只是查询 StartDate 以查找具有报告查询范围的所有预订并计算它们。
示例 SQL 查询是..
"SELECT *
FROM RequestsQueueObjects
WHERE PODObjectID='" +cPOD.PODObjectID + "'
and StartDateTime >= '" + StartDate + "'
and StartDateTime <= '" + EndDate + "'";
我的设计有问题。如果我的预订从 2015 年 1 月 1 日开始到 2015 年 1 月 15 日结束,这将不会显示在 2015 年 1 月 2 日至 2015 年 1 月 7 日的报告中
有没有办法让 SQL 查找两个日期之间的所有预订对象?
【问题讨论】:
-
Look at Between小心使用>= and <=的日期,你不会得到预期的结果,或者你可以检查StartDateTime >= StartDate and StartDateTime < EndDate我也会更改该查询以使用Parameterized Query -
嗨 DJ KRAZE,我如何在 Reservation StartDate 和 Reservation EndDate 之间使用 Between。请给我一个例子。
-
ZOO是什么阻止您在Google Search上对SQL BETWEEN Examples进行操作,请多做一点努力.. -
@DJKRAZE 你不应该建议任何人使用 BETWEEN(见 sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/…)
-
@DJKRAZE 我会小心建议使用 BETWEEN。这是一个准备以丑陋的方式踢的陷阱。 See this article from Aaron Bertrand当然要看对这些问题的了解有多深。
标签: c# sql sql-server asp.net-mvc