我正在创建用于搜索的存储过程。 DateOrdered
是datetime
类型表中的列名。如何在日期时间存储过程中使用BETWEEN
问题是我想对此列执行搜索。用户可以搜索开始日期和结束日期。另外,用户可以为任何参数发送null,例如开始日期或结束日期。
当用户不会发送开始日期或结束日期时,我将搜索另一个选项。我的问题是,我如何处理下面是我试过的查询,但没有成功
SELECT
@C_Order_ID = C_Order_ID
FROM
C_Order COrder
WHERE
(@AD_Org_ID IS NULL OR
COrder.AD_Org_ID IN (SELECT ID FROM fnSplitter(@AD_Org_ID)))
AND (@AD_Client_ID IS NULL OR
@AD_Client_ID IN (SELECT ID FROM fnSplitter(@AD_Client_ID)))
AND (@IsActive IS NULL OR COrder.IsActive = @IsActive)
AND (@startDate IS NULL OR
COrder.DateOrdered = @startDate BETWEEN @EndDate IS NULL
OR COrder.DateOrdered = @EndDate)
感谢您的回复。
@ R.T。如果用户将发送空值然后 – 2014-08-28 07:12:38
@ A.Goutam: - 更新我的答案来处理! – 2014-08-28 07:14:53
但我的领域是类型的日期时间,我只想不为日期时间 – 2014-08-28 07:16:16