.NET中的windows服务异常
问题描述:
我会将应用程序作为Windows应用程序进行测试,然后将其存储在MySQL数据库中的日期时间。当我将使用Windows服务启动此应用程序时,它将引发此异常。.NET中的windows服务异常
error [HY000][MySQL][ODBC 3.51 Driver] [MySqlid -6.0.11-alpha-community]incorrect datetime value " 5/6/2011 9:00:00 AM" for column column-name at row1
Windows应用程序占用系统格式&我的系统格式为YYYY-MM-DD HH:MM:这是用来格式在Windows业务SS 。
query18 += "select '" + obj8 + "' as DTvalue ,'" + date8 + "' as DTdatelogged1 ,'" + OpcGroup.QualityToString(e8.sts[counter8].Quality) + "' as DTquality ,'" + DateTime.FromFileTime(e8.sts[counter8].TimeStamp) + "' as DTtimestamp ,'" + e8.sts[counter8].HandleClient + "' as DTparamID Union " + Environment.NewLine; UpdateQuery = Update parameter t Left join + Environment.NewLine; UpdateQuery8 += ( + query18 + ) Temp on" + Environment.NewLine; UpdateQuery8 += t.itemID=Temp.DTparamID+ Environment.NewLine; UpdateQuery8 += set paramvalue=DTvalue, date_logged1=DTdatelogged1,Quality= DTquality,date_logged=DTtimestamp + Environment.NewLine; UpdateQuery8 += where t.groupID=9 and t.itemID=Temp.DTparamID;
我的查询likethis时间戳值是129500892576718750将DateTime.FromFileTime()函数转换值转换,如“2011-05-17 12点30分57秒”在Windows应用程序将是写入到mysql数据库 但在Windows服务转换像2011/05/17下午十二时30分57秒值,它会通过我将在窗口服务
现在
UpdateQuery8 = "Update parameter " + Environment.NewLine; UpdateQuery8 += "set [email protected],[email protected]_logged1,[email protected],[email protected]_logged" + Environment.NewLine; UpdateQuery8 += "where groupID=9 and [email protected]"; cmd8 = new OdbcCommand(UpdateQuery8, con136); cmd8.Parameters.Add("@paramvalue", obj8.ToString()); cmd8.Parameters.Add("@date_logged1", date8); cmd8.Parameters.Add("@Quality", OpcGroup.QualityToString(e8.sts[counter8].Quality)); cmd8.Parameters.Add("@date_logged", dt); cmd8.Parameters.Add("@itemID",e8.sts[counter8].HandleClient); cmd8.ExecuteNonQuery();
它使用MYSQL数据库同样的事情可以不接受将被执行,但没有更新在数据库中
请在这方面帮助我。
在此先感谢。
答
创建一个日期时间并以您想要的方式进行格式化。不是系统默认值,也不是临时用户默认值,而是您想要的值。
DateTime dt = DateTime.Now;
String str = dt.ToString("yyyyMMdd");
这应该导致“20110517”,如果我没有错。
如果您使用其中一个更好的答案,将代码区域设置为由mysql服务器使用的区域设置,则会给出奖励点。但是上面的那个应该给你一个可行的方法。