Sql server 带有日期变量的SQL Server存储过程

Sql server 带有日期变量的SQL Server存储过程,sql-server,tsql,datetime,stored-procedures,Sql Server,Tsql,Datetime,Stored Procedures,我需要帮助更正以下存储过程。我只想输入2014年7月14日的日期,而不必输入整个日期时间字符串,仍然可以获得2014年7月14日的所有数据 目前我必须以2014-07-14 00:00:00.000的形式输入 要包含日期期间的所有事件,您需要在00:00:00.000开始日期开始,并在第二天00:00:00.000结束日期之前完成。这可以很容易地完成添加1天结束日期 ALTER PROCEDURE [dbo].[spWWGetScrap] @Start_Date datetime = N

我需要帮助更正以下存储过程。我只想输入2014年7月14日的日期,而不必输入整个日期时间字符串,仍然可以获得2014年7月14日的所有数据

目前我必须以2014-07-14 00:00:00.000的形式输入


要包含日期期间的所有事件,您需要在00:00:00.000开始日期开始,并在第二天00:00:00.000结束日期之前完成。这可以很容易地完成添加1天结束日期

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 >= @Start_Date) AND (DateStamp < dateadd(d,1,@End_Date))

注意,我没有包括=。只有在结束日期中省略时间部分时,此选项才有效。

hello。。。别忘了还包括一个带有SQL Server版本年的标记。另外,为什么必须输入时间?你是如何看待忽略它的问题的?我这样问是因为如果省略它,它通常会默认为00:00:00。。。所以你会得到你想要的。我猜你对between有一个问题,如果你不需要时间组件,那么为什么不为@Start\u date和@End\u date使用日期类型呢?我需要一些报告的时间,但不是所有报告的时间。当我离开时间说我只想要今天2014年7月14日,它不会返回任何东西。如果我将填充时间设置为07-14-2014 00:00:00.000和07-14-2014 23:59:59.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 >= @Start_Date) AND (DateStamp < dateadd(d,1,@End_Date))