我试图获得下面的语句执行。标量值函数期望日期为varchar
,而customertable
中的原始列为日期时间。我已经完成了我的研究并环顾四周;我试过的各种解决方案都没有奏效。在标量值函数中将datetime转换为varchar SQL Server 2005
当我运行此:
select
ID, DATE_COL,
dbo.CustRandValuationOnDate (ID, LEFT(CONVERT(VARCHAR, DATE_COL, 120), 10))
from customertable
我得到这个错误:
Conversion failed when converting character string to smalldatetime data type.
UPDATE:功能代码
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 [email protected]
AND B.ACCOUNTID=A.ACCOUNTID
AND [email protected]), 0.00);
END
更新:一些列date_col值都是零。我刚刚证实了这一点。
你的字符串包含什么? –
你的意思是date_column?它包含date_time格式的时间戳,不幸的是它们中的很多都有NULL ... – Mina