c#SQL_Latin1_General_CP1_CI_AS的日期时间格式

时间:2012-06-27 09:45:02

标签: c# sql-server-2008-r2

如何使用此排序规则的日期时间格式化插入语句...

目前:

string SQLst = "UPDATE [LASTUPDATE] SET last_update = '" + DateTime.Now.ToString("yyyy-MM-dd") + "'";

这适用于Latin1_General_CI_AS但现在在不同的服务器上我需要此语句才能使用服务器设置为排序规则SQL_Latin1_General_CP1_CI_AS

这是我得到的错误:

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value

2 个答案:

答案 0 :(得分:4)

根本不执行转换。而是使用paramterized SQL并将值设置为参数。您应该为所有参数使用参数化SQL,以避免SQL injection attacks,像这样的转换问题,并保持代码更清晰。

一般避免不必要的字符串转换。它们几乎总是潜在的微妙错误来源。

答案 1 :(得分:1)

如果像@Jon Skeet所说的那样会很棒,但是如果你不能,那就不要使用CONVERT

string SQLst = "UPDATE [LASTUPDATE] SET last_update = CONVERT(datetime, '"+DateTime.Now.ToString("yyyy-MM-dd")+"', 120)