I’m trying to get the following statement executed. The scalar-valued function is expecting a varchar
for the date and the original column in customertable
is a datetime. I’ve done my research and looked around; the various solutions I’ve tried haven’t worked.
When I run this:
x
select
ID, DATE_COL,
dbo.CustRandValuationOnDate (ID, LEFT(CONVERT(VARCHAR, DATE_COL, 120), 10))
from customertable
I get this error:
Conversion failed when converting character string to smalldatetime data type.
UPDATE: function code
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[CustRandValuationOnDate](@DATE VARCHAR(11), @CIFNUMBER VARCHAR(12)) RETURNS FLOAT
AS BEGIN
RETURN ISNULL((SELECT SUM(DBO.RandValOfAccOnDate(@DATE, A.ACCOUNTID))
FROM ACCOUNTTBL A, BALANCETBL B
WHERE A.CIFNUMBER=@CIFNUMBER
AND B.ACCOUNTID=A.ACCOUNTID
AND B.VALUATIONDATE=@DATE), 0.00);
END
UPDATE: some of the values in DATE_COL are null. ive just confirmed that.
Advertisement
Answer
You are passing your params in the wrong order to function..