Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据类型varchar转换为datetime时出错_C#_Sql Server 2008 - Fatal编程技术网

C# 将数据类型varchar转换为datetime时出错

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列能够同时存储日期和时间组件,但即便

我在DB表EntryDate中有两列,它的类型是datetime,另一列EntryTime是Time

我创建了一个进程,它接受datetime param@DatetimeParam,就像

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代码。我猜你传递的输入格式无效。