SQL datetime out of range ошибка

Я вызываю хранимую процедуру из другой хранимой процедуры. Мне нужно пройти параметр @StartDateи @enddate:

Create procedure GetALL
    (@Startdate datetime,
     @EndDate datetime)
as
    insert into #test 
       Exec [getCustomerAll] @Startdate, @EndDate

Я получаю ошибку

Преобразование типа данных varchar в тип данных datetime привело к значению вне диапазона

Я не могу изменить getCustomerAllхранимую процедуру, так как она написана сторонним клиентом

Параметры ДляGetCustomerAll, @Startdateи @EndDateвсе типа datetime.

Я вызываю GetALLхранимую процедуру из C# asp.net.

exec  GetALL  '15 MAY 2016','15 MAY 2016' . 

Проблема, возникающая при вызове GetCustomer all

Create PROCEDURE [dbo].[getCustomerAll]
    -- Add the parameters for the stored procedure here
    @DateFrom Datetime,
    @DateTo Datetime,

AS
BEGIN


    SELECT  * from Customers

    WHERE creation_date BETWEEN CONVERT(VARCHAR(10), @DateFrom, 103) AND CONVERT(VARCHAR(10), @DateTo, 103)

Любая помощь оценена

3 ответа

  1. Вызов процедуры с использованием универсального формата даты:

    exec  GetALL '20160515','20160515'
    
  2. попробуйте вызвать хранимую процедуру GetALL следующим образом

    declare @Startdate as datetime,@EndDate as datetime;
    set @Startdate=convert(datetime, '15 MAY 2016',106);
    set @EndDate=convert(datetime, '15 MAY 2016',106);
    exec  GetALL  @Startdate,@EndDate;
    
  3. Creation_Date-это столбец даты и времени ?

    Почему вы конвертируете @DateFrom & @DateTo в varchar (10) с помощью convert ()?

    WHERE creation_date BETWEEN 
          CONVERT(VARCHAR(10), @DateFrom, 103) 
          AND 
          CONVERT(VARCHAR(10), @DateTo, 103)