声明日期变量

时间:2019-05-15 09:27:53

标签: sql-server date declare

我想使用以下内容声明开始日期和结束日期:

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

1 个答案:

答案 0 :(得分:1)

您可能会发现ud.SalesQtyNVARCHAR列。

quantities的值为0.0时,您试图将NULL字段设置为ud.SalesQty(浮点数)。

尝试将0.0更改为'0.0'或其他选择。