0
之间有什么格式的区别:SQL Server CE的时间戳移交
DateTime datetimenow = DateTime.Now.ToLocalTime();
和
long ticks = 634687637580000000;
DateTime createdTimestamp = new DateTime(ticks).ToLocalTime();
这导致SQL Server CE抛出错误
在有错误日期格式的一部分。 [表达式(如果 已知)=]
我试图插入两个时间戳到SQL Server CE数据库中。当前日期时间和过去的日期时间。当前日期和时间(现在)可以插入到表格中的两个目标字段中,但是当我使用createdTimestamp
时,会引发上述错误。
当我在调试中查看当地人的格式是,正好是两者相同。
目标字段都是datetime
数据类型。
为什么可能会引发此错误?
编辑:
我只是发现它似乎只影响时间戳过去。现在和未来的时间戳工作正常。
编辑:添加SQL插入代码。
查询是由我自己的SQL Server CE类动态构建的。
{INSERT timeline (TweetID,Author,TimestampOfTweet,TimestampOfCollected,TweetText) VALUES ('185941815562739713','twitterapi','15/12/2011 13:52:39','01/04/2012 15:58:58','TweetDeck access - Update : This issue has been resolved. http://t.co/2yub0tYL')}
执行代码:
//Take built statement and apply to command text
cmd.CommandText = buildSqlStatement.ToString();
//execute insert
try
{
cmd.Connection = sqlConn;
sqlConn.Open();
int rows = cmd.ExecuteNonQuery();
string results = Convert.ToString(rows);
return results;
}
catch(Exception ex)
{
return ex.Message;
}
finally
{
sqlConn.Close();
}
你没有显示你如何*使用*值。请显示与SqlCE的交互。如果直接包含该值,请尝试使用参数化SQL。 – 2012-04-01 14:50:47
以上更新。它使用我自己的SQLCE类。 – Damo 2012-04-01 15:02:19
那么回到我以前的观点,你应该使用参数化的SQL语句。然后司机会为你处理转换。 – 2012-04-01 15:07:08