如何在sql server中存储日期并传递值(日期)

时间:2014-01-14 17:14:58

标签: sql sql-server

我将日期存储在db中,如下面的代码

convert(varchar(10),GETDATE(),105)

现在我需要搜索值

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

如果我传入值01-01-2014和10-01-2014,则显示错误

Incorrect syntax near '-'.

我犯了错误。帮助我

2 个答案:

答案 0 :(得分:0)

您将日期存储为varchar字段。这似乎不是一个好主意,我相信两者之间不会有用。您应该使用日期时间类型存储日期。让SQL决定如何存储它,您可以在显示时根据需要对其进行格式化。

答案 1 :(得分:-1)

我认为你所说的似乎是你错误地传递了日期。当您调用存储过程时,它应如下所示:

exec spr_tb_sales '01-01-2014', '10-01-2014'

我认为您可能会错过约会日期的引号,这会给您带来错误的错误' - '语法不正确。