我想过滤两个日期之间的数据,但是当将其存储在临时变量中并执行时,出现以下错误
消息 8114,第 16 层,状态 5,第 11 行
将数据类型 varchar 转换为 datetime 时出错
此代码有效:
DECLARE @Where VARCHAR(400)
DECLARE @FromDate DATETIME
DECLARE @ToDate DATETIME
SET @FromDate = '2018-11-02'
SET @ToDate = '2018-11-19'
SELECT *
FROM StudentInfo studentinfo
WHERE CreatedDate BETWEEN @FromDate AND @ToDate
CREATE PROCEDURE GetUserData --'2018-11-02','2018-11-17'
@FromDate DATETIME,
@ToDate DATETIME
AS
BEGIN
DECLARE @ab VARCHAR(400)
SET @ab= 'select StudID,FirstName,LastName,CountryCode+(SELECT REPLACE(LTRIM(REPLACE(Contact,''0'','' '')),'' '',''0'')) as Contact,EmailID1,CurrentEdu,PreferredCountry,CurrentInstitution,
CONVERT(VARCHAR(10),CreatedDate,103) as RegistrationDate,
OrganisationID,EventId,CreatedDate
from studentinfo
where 1=1 and
CreatedDate BETWEEN'+ @FromDate+'and'+ @ToDate+''
EXEC @ab
END
如果我猜到这个代码:
CONVERT(VARCHAR(10),CreatedDate,103);
您表中的此字段
CreatedDate
具有无效值。