
现在,我想使用SqlCommand将组合框中的选定值传递到SQL查询中
我想传递参数&在datetime中添加值.
我尝试了这段代码:
cmd.Parameters.AddWithValue("@Expiry", cmbox.SelectedValue.ToString()); and also try
cmd.Parameters.AddWithValue("@Expiry", cmbExpiryDate.SelectedValue.ToString("MM-dd-yyyy"));
但没有用它会引发转换溢出.我是初学者,请帮助我是窗口形式
我正在使用2005 Studio
组合框的值:
2014年4月28日00:00:00
错误
将表达式转换为数据类型datetime的算术溢出错误.
解决此问题的方法是使用SQL Server支持的(略微调整的)ISO-8601日期格式-这种格式始终有效-不管您使用的SQL Server语言和dateformat设置如何.
SQL Server支持ISO-8601 format有两种形式:
> YYYYMMDD,仅显示日期(无时间部分);请注意:没有破折号!,这很重要! YYYY-MM-DD并非独立于SQL Server中的dateformat设置,并且在所有情况下都无法使用!
要么:
>日期和时间的YYYY-MM-DDTHH:MM:SS-在此处注意:此格式带有破折号(但可以省略),并在DATETIME的日期和时间部分之间使用固定的T作为定界符.
这对SQL Server 2000及更高版本有效.
如果使用SQL Server 2008或更高版本以及DATE数据类型(仅DATE-而不是DATETIME!),则实际上也可以使用YYYY-MM-DD格式,并且在SQL Server中的任何设置也可以使用.
不要问我为什么整个主题如此棘手且有些令人困惑-这就是事实.但是使用YYYYMMDD格式,则可以使用任何版本的SQL Server以及SQL Server中的任何语言和日期格式设置.
对于SQL Server 2008及更高版本,建议仅在需要日期部分的情况下使用DATE,在需要日期和时间的情况下使用DATETIME2(n).如果可能,您应该尝试逐步淘汰DATETIME数据类型
转载注明原文:C#-在SQL命令中将字符串作为datetime参数传递 - 乐贴网