2014-01-11 47 views
-1

我需要在存儲過程之間使用。這是我的代碼如何將日期傳遞到SQL Server存儲過程

ALTER PROCEDURE sp_tb_sales_entry_total_product_where_date 
    @to_date varchar(15), 
    @from_date varchar(15) 
AS 
BEGIN 
SELECT * 
    FROM tb_sales_entry_total_product 
    WHERE [Sales Date] BETWEEN @from_date AND @to_date 
END 

如果我通過在值01-12-201310-01-2014(在我的表中的數據也是相同的格式)它不返回我期待的行。

如果我傳遞的值爲01-01-201410-01-2014它將返回我期望的行。

+9

請閱讀本[關於sp_前綴](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix),這[關於日期/時間查詢](http:// sqlblog (這是關於使用錯誤的數據類型](http:// sqlblog。com/blogs/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling-date-range- queries.aspx)。 com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the-wrong-data-type.aspx),this [about about BETWEEN](http://sqlblog.com/博客/ aaron_bertrand /存檔/ 2011/10/19 /什麼-DO之間和最魔鬼具有功能於common.aspx)。 –

+9

而且,這[關於使用分號](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/09/03/ladies-and-gentlemen-start-your-semi-colons.aspx),這[關於使用SELECT *](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/10/bad-habits-to-kick-using-select-omitting-the-column-list.aspx) ,這[關於使用模式前綴](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/11/bad-habits-to-kick-avoiding-the-schema-prefix.aspx),而這[最佳做法列表](http://sqlblog.com/blogs/aaron_bertrand/archive/2008/10/30/my-stored-procedure-best-practices-checklist.aspx):SET NOCOUNT –

回答

5

如果您傳遞日期,然後傳中date

ALTER PROCEDURE sp_tb_sales_entry_total_product_where_date 
    @to_date date, 
    @from_date date 
AS 
BEGIN 
    SELECT * 
    FROM tb_sales_entry_total_product 
    WHERE [Sales Date] BETWEEN @from_date AND @to_date 
END; 

做轉換的日期存儲過程被調用時。

+0

謝謝錯誤已清除... – Happy

相關問題