因为查询没有抛出它意味着查询正在成功执行,这留下了以下可能性:
- 您在 OrderDetails 或 Orders 表中没有数据
- 您没有 OrderDetails,其中 OrderDetails.Date = '05/07/2013'
执行此操作以查看您是否有包含该日期的列
SELECT COUNT(*) AS DateCount FROM OrderDetails WHERE Date = '05/07/2013'
如果返回 0,则表示该日期没有 OrderDetails,如果返回 1 或更多,请执行以下操作
SELECT COUNT(*) AS OrdersWithDateCount
FROM Orders
JOIN OrderDetails
ON Orders.Oid = OrderDetails.Oid
WHERE OrderDetails.Date = '05/07/2013'
如果您在上面的示例中返回零,但在下面的示例中不返回零
SELECT COUNT(*) AS OrderDetailsWithDateCount
FROM OrderDetails
WHERE Date = '05/07/2013'
您有详细记录但没有订单记录或孤立记录。确保您有正确的日期,请执行以下操作
SELECT DISTINCT Date
FROM OrderDetails
WHERE Date BETWEEN GETDATE()-90 AND GETDATE()
如果您看到日期匹配,可能是因为您的数据类型是日期时间,请尝试使用
DECLARE @TargetDate DATE = '05/07/2013'
SELECT COUNT(*) FROM OrderDetails
WHERE OrderDetails.Date
BETWEEN DATEADD(day,-1,@TargetDate)
AND DATEADD(day,1,@TargetDate)
如果这确实返回了 0 以外的值,那么您需要使用这种方法来获得正确的结果。如果它确实返回 0,那么您肯定没有日期为'05/07/2013'