【发布时间】:2014-09-04 12:02:35
【问题描述】:
我需要帮助来纠正以下存储过程。我只想输入日期为07-14-2014 而不必输入整个datetime 字符串,仍然可以从07-14-2014 获取所有数据。
目前我必须输入2014-07-14 00:00:00.000。
ALTER PROCEDURE [dbo].[spWWGetScrap]
@Start_Date datetime = NULL
,@End_Date datetime = NULL
AS
-- Get the latest dataset.
SELECT
Casting_Part_Number, Scrap_Code,
Casting_Code, Pattern, Quantity
FROM
CleaningRoom_Scrap
WHERE
DateStamp BETWEEN @Start_Date AND @End_Date
【问题讨论】:
-
你好...不要忘记还包含一个带有 SQL Server 版本(年份)的标签。
-
另外,为什么你“必须”输入时间?您如何看到忽略它的问题?我问是因为如果省略它通常会默认为 00:00:00 ......所以你会得到你想要的。 (我猜你对“介于”有疑问,最好具体说明一下)
-
另外,如果您不需要时间组件,那么为什么不使用
date类型作为@Start_Date 和@End_Date。 -
我需要时间来做一些报告,但不是全部。当我休假并说我只想今天(2014 年 7 月 14 日)时,它不会返回任何东西。如果我输入(07-14-2014 00:00:00.000 和 07-14-2014 23:59:59.000)的填充时间,它将返回今天的数据。
-
或许你只需要了解“What do BETWEEN and the devil have in common?”这个问题的答案。
标签: sql-server tsql datetime stored-procedures