Я хочу объявить дату начала и окончания, используя следующее:
DECLARE @start_date DATETIME = '2019-05-08'
DECLARE @end_date DATETIME = '2019-05-14'
, а затем использовать это в предложении WHERE
следующим образом:
WHERE dc.Date >= @start_date AND dc.Date < @end_date
Однако яполучаю следующую ошибку:
Ошибка преобразования типа данных varchar в float.(8114) (SQLExecDirectW)
Может ли кто-нибудь помочь мне понять эту ошибку, пожалуйста?
Большое спасибо!
РЕДАКТИРОВАТЬ
Обратите внимание, что работает следующее:
WHERE dc.Date >= '2019-05-08' AND dc.Date < '2019-05-14'
РЕДАКТИРОВАТЬ
Полный запрос:
DECLARE @unit_id INT = {unit_id}
DECLARE @location_id INT = {location_id}
DECLARE @start_date DATETIME = '{start_date}'
DECLARE @end_date DATETIME = '{end_date}'
SELECT dc.Date AS timestamps, COALESCE(ud.SalesQty, 0.0) AS quantities
FROM DIM.DayCalendar AS dc WITH (NOLOCK)
LEFT JOIN FACT.UnitData AS ud
ON dc.DayCalendarID = ud.DayCalendarID
AND ud.UnitID = @unit_id
AND ud.LocationID = @location_id
WHERE dc.Date >= @start_date AND dc.Date < @end_date
ORDER BY timestamps DESC