【发布时间】:2014-10-30 03:45:23
【问题描述】:
我有一个存储过程,我将 3 个变量 bankNumber、branchNumber 和 DateFrom 传递给。
基于这些变量,我想查询表(见下图存储过程)以返回所有符合我通过的条件的记录(通过变量)。
相反,我收到此错误:
从字符串转换日期和/或时间时转换失败
当我将 DateFrom 变量传递给它时,它似乎失败了。
感谢您的帮助
ALTER PROCEDURE [dbo].[Search_Records]
@bankNumber varchar(3),
@branchNumber varchar(3),
@dateCreated datetime
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE
@Bank_Number varchar(3) = @bankNumber,
@Branch_Number varchar(3) = @branchNumber,
@DateFrom datetime = @dateCreated,
@DateTo datetime = @dateCreated
SELECT DISTINCT
A.bankNumber,
A.branchNumber,
A.dateCreated
FROM
dbo.CENSORED A
WHERE
(@Branch_Number IS NULL OR bankNumber LIKE @BankNumber + '%')
AND (@Branch_Number IS NULL OR branchNumber LIKE @Branch_Number + '%')
AND (@DateFrom IS NULL OR dateCreated LIKE + @DateFrom + '%')
AND (@DateTo IS NULL OR dateCreated LIKE + @DateTo + '%')
END
【问题讨论】:
-
你在使用 MySQL 吗?还是 SQL Server?它们不是一回事。
-
@JohnConde sql server 感谢您指出这一点。
-
@DateFrom + '%'是什么意思?匹配月份?配对日?匹配年份?匹配时间?........ -
@M.Ali 我试图只匹配月份。谢谢你的提问。
-
还有
@dateCreated是从哪里来的?
标签: sql-server stored-procedures