如何解决将DateTime值传递给参数化查询错误

时间:2014-01-18 03:31:06

标签: sql datetime datetimepicker sql-convert

这是我的查询字符串

SELECT
Payment
,Balance
,PatientNo
FROM
[GP_DB].[dbo].[GP]
where GP.GPDate= (SELECT CONVERT(VARCHAR(24),@GPDate,103))

GPDate是日期类型列,而不是DateTime

我传递像这样的参数

cmd_select_treatment.Parameters.AddWithValue(
            "@GPDate"
            ,Convert.ToDateTime(dateTimePicker1.Value));

但发生以下错误

从字符串转换日期和/或时间时转换失败。

3 个答案:

答案 0 :(得分:2)

  

GPDate是日期类型列

如果它是DATE列并且您的Convert.ToDateTime来电返回了DateTime个对象,那么请不要为CAST打扰自己。

WHERE GP.GPDate = @GPDate

如果dateTimePicker1可能包含时间成分且您并不关心它,那么只需在使用其值之前将其丢弃:

Convert.ToDateTime(dateTimePicker1.Value).Date

答案 1 :(得分:0)

@var是DateTime select cast(convert(varchar(8),@ var,112)as Date)

答案 2 :(得分:-1)

我认为您需要在日期转换中添加图片子句,例如

to_date('18/01/2014 10:15:20','dd/mm/yyyy hh24:mi:ss');

这应该可以解决你的问题