sql - ERROR:Conversion failed when converting date and/or time from character string.(when date data type is used in filter) -
i'm trying select statement gives me values between particular date values. wasn't able complete 1 because of above mentioned error.
i have created sample code below replicates error.
is there solution resolve 1 ?
begin declare @outputtimedimensionvalue varchar (60) set @outputtimedimensionvalue = '2006-onward' create table #temp1 ( timevalue int, timedimensiondate date ) insert #temp1 values (23,'2007-04-01'),(28,'2008-01-01'),(45,'2012-04-01') select timevalue #temp1 timedimensiondate between convert(datetime,left(@outputtimedimensionvalue, 4)+'-01-01') , convert(datetime,right(@outputtimedimensionvalue, 4)+'-01-01') drop table #temp1 end
you must use left
instead of right
year part:
select timevalue #temp1 timedimensiondate between convert(datetime, left(@outputtimedimensionvalue, 4) + '-01-01') , convert(datetime, left(@outputtimedimensionvalue, 4) + '-01-01')
however, suggest using date
type instead , using >=
, <
comparison:
declare @outputtimedimensionvalue date = '20060101' select timevalue #temp1 timedimensiondate >= @outputtimedimensionvalue timedimensiondate < dateadd(year, 1, @outputtimedimensionvalue)
the above give timevalues
in 2016.