Data Type Conversion
Can someone kindly help me please. Please see the query below: select case when Arrival_Date between 01/04/2008 and 31/03/2009 then '20082009' when Arrival_Date between 01/04/2009 and 31/03/2010 then '20092010' when Arrival_Date between 01/04/2010 and 31/03/2011 then '20102011' when Arrival_Date between 01/04/2011 and 31/03/2012 then '20112012' when Arrival_Date between 01/04/2012 and 31/03/2013 then '20122013' when Arrival_Date between 01/04/2013 and 31/03/2014 then '20132014' else 'NULL' end as 'ContractFinancialYear' from dbo.AE_SUSArrivalDate When I try to run this query I get the following error: Msg 245, Level 16, State 1, Line 1 Conversion failed when converting the varchar value '01/01/2009' to data type int. The above query runs against a view which I created with SELECT CONVERT(varchar(10), Arrival_Date, 103) AS Arrival_Date FROM dbo.SUS_AccidentAndEmergency How can I address this problem so that the query can run without any errors? Many thanks.Mpumelelo
July 4th, 2011 7:24am

first: your question is not related to SSIS forum, you should ask it in t-sql forum. second: (answer); try this one: select case when Arrival_Date between '01/04/2008' and '31/03/2009' then '20082009' when Arrival_Date between '01/04/2009' and '31/03/2010' then '20092010' when Arrival_Date between '01/04/2010' and '31/03/2011' then '20102011' when Arrival_Date between '01/04/2011' and '31/03/2012' then '20112012' when Arrival_Date between '01/04/2012' and '31/03/2013' then '20122013' when Arrival_Date between '01/04/2013' and '31/03/2014' then '20132014' else 'NULL' end as 'ContractFinancialYear' from dbo.AE_SUSArrivalDate this will solve the error but maybe results seems weird and the reason is that you compared dates as strings. It is better to compare all in date mode like this: select case when convert(date,Arrival_Date between convert(date,'01/04/2008') and convert(date,'31/03/2009') then '20082009' when convert(date,Arrival_Date) between convert(date,'01/04/2009') and convert(date,'31/03/2010') then '20092010' when convert(date,Arrival_Date) between convert(date,'01/04/2010') and convert(date,'31/03/2011') then '20102011' when convert(date,Arrival_Date) between convert(date,'01/04/2011') and convert(date,'31/03/2012') then '20112012' when convert(date,Arrival_Date) between convert(date,'01/04/2012') and convert(date,'31/03/2013') then '20122013' when convert(date,Arrival_Date) between convert(date,'01/04/2013') and convert(date,'31/03/2014') then '20132014' else 'NULL' end as 'ContractFinancialYear' from dbo.AE_SUSArrivalDatehttp://www.rad.pasfu.com
Free Windows Admin Tool Kit Click here and download it now
July 4th, 2011 7:31am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics