2014-01-11 23 views
2

我需要在存儲過程中使用between。這是我的代碼如何在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 @to_date AND @from_date 
END 

我通過兩個值01-01-201410-01-2014。在我的表格中也採用相同的格式。

問題是它沒有選擇值。我的錯誤在哪裏?

+0

什麼類型的字段是[銷售日期]? – automatic

+1

備註:您應該**不要**爲存儲過程使用'sp_'前綴。微軟已經保留了這個前綴以供自己使用(參見*命名存儲過程*)](http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx),以及你將來有可能冒着名字衝突的風險。 [這對你的存儲過程性能也是不利的](http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix)。最好只是簡單地避免使用'sp_'並將其他內容用作前綴 - 或者根本沒有前綴! –

回答

7

操作BETWEEN在SQL has the following syntax

test_expression [ NOT ] BETWEEN begin_expression AND end_expression 

由於begin_expression需要首先,你必須選擇的from_dateto_date順序:

SELECT * FROM tb_sales_entry_total_product WHERE [Sales Date] BETWEEN @from_date AND @to_date 
4

切換他們

WHERE [Sales Date] BETWEEN @from_date AND @to_date 
+0

謝謝了... – Happy

-1

使用SQL格式..

DATE_FORMAT(COLNAME,\ '%d /%M /%Y \')AS COLNAME

你可以使用你想要的格式.. link