Как исправить несовпадение типов времени и даты в SQL Server - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь установить некоторые переменные и создать процедуру, которая будет производить разные типы таблиц в каждом случае оператора. Условия зависят от типов данных даты, и я получаю ошибку:

Сообщение 402, Уровень 16, Состояние 1, Процедура epSP, Строка 50 [Стартовая строка запуска 0] Типы данных time и datetime несовместимы в большей чем или равно оператору.

Код, который я добавил, - это не весь код. Это часть более длинного оператора с оператором IF. Я попытался добавить типы данных даты перед различными частями процедур и изменить дату после оператора <на оператор выбора. </p>

CREATE PROCEDURE epSP

@StartDate DATETIME, 
@EndDate DATETIME,
@CompanyID INT 

AS

SET @StartDate = '2019-04-04 00:00:00' 
SET @EndDate = '2019-04-11 00:00:00'
SET @CompanyID = 1234567

BEGIN
    (CAST(GETDATE() AS DATETIME) < @StartDate)
    (
    SELECT  sa.CompanyID,
        sa.EmployeeID,
        sm.Day,
        sa.Date,
        sm.ShiftType,
        sm.StartTime,
        sm.EndTime
    FROM ShiftArrangement sa
    LEFT JOIN ShiftManagement sm
    ON (sa.SHIFTID = sm.ShiftID)
    WHERE sa.CompanyID = @CompanyID
    AND sa.Date BETWEEN @StartDate AND @EndDate
    )

Ожидаемый результат - оператор SELECT в соответствии с датой, указанной в переменной, определенной в начале оператора. На самом деле код не возвращает никакого значения.

...