按日期过滤记录

时间:2019-01-21 06:35:05

标签: sql-server

我想过滤两个日期之间的数据,但是将其存储在temp变量中并执行时,出现以下错误

  

信息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

2 个答案:

答案 0 :(得分:0)

{{ item.name }}

答案 1 :(得分:0)

如果我猜这个代码:

CONVERT(VARCHAR(10),CreatedDate,103);

表中此字段CreatedDate的值无效。

相关问题