C# 将数据类型varchar转换为datetime时出错
我在DB表EntryDate中有两列,它的类型是datetime,另一列EntryTime是Time 我创建了一个进程,它接受datetime param@DatetimeParam,就像C# 将数据类型varchar转换为datetime时出错,c#,sql-server-2008,C#,Sql Server 2008,我在DB表EntryDate中有两列,它的类型是datetime,另一列EntryTime是Time 我创建了一个进程,它接受datetime param@DatetimeParam,就像 select * from [TableName] where EntryDate+EntryTime <=@DatetimeParam 将数据类型varchar转换为datetime时出错 我正在使用sql2008和c,首先,您的表结构是冗余的。DateTime列能够同时存储日期和时间组件,但即便
select * from [TableName] where EntryDate+EntryTime <=@DatetimeParam
将数据类型varchar转换为datetime时出错
我正在使用sql2008和c,首先,您的表结构是冗余的。DateTime列能够同时存储日期和时间组件,但即便如此。您的C代码中一定有一个错误没有发布,因为如果@DateTimePAram是一个有效值,那么您的sql就可以工作了
use TempDB
CREATE TABLE #temp (a DateTime, b Time)
INSERT INTO #temp (a,b) values ('2012-01-01', '12:00:00.000')
SELECT * FROM #temp where a+b < getdate()
DROP TABLE #temp
为什么不将时间也存储在EntryDate中,因为它的类型是DateTime您如何调用存储过程?问题不在于存储过程本身,而在于您如何调用它。datetime+time应该可以,@DatetimeParam的值是多少?我知道由于业务需要和应用程序设计,有一个reduntant,必须有EntryDate和EntryTime columnsok。然后发布调用此存储过程的c代码。我猜你传递的输入格式无效。