2014-01-11 3 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-2014 и 10-01-2014. В моей таблице также в том же формате.

Проблема в том, что он не выбирает значения. Где моя ошибка?

+0

Какой тип поля [ Дата продажи]? – automatic

+1

Боковое примечание: вы не должны ** использовать префикс 'sp_' для ваших хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (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_date и to_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 /% м /% Y \') AS ColName

вы можете использовать формат, который вы хотите .. link

Смежные вопросы