将日期时间插入SQLCE,以毫秒为单位C#

时间:2010-09-13 07:57:34

标签: c# datetime format sql-server-ce

我有一个字符串日期时间,格式为“dd-MM-yyyy HH:mm:ss.fff”

喜欢这样..

DateTime mydate = Convert.ToDateTime("13-09-2010 02:30:14.905"); 
 result.SetValue(1, mydate);

//我收到错误消息“字符串未被识别为有效的DateTime”

如果我这样做的话

DateTime mydate = DateTime.ParseExact("13-09-2010 02:30:14.905", "dd-MM-yyyy HH:mm:ss.fff", CultureInfo.CurrentCulture);
 result.SetValue(1, mydate);

它工作正常但是没有毫秒就可以格式化。

我只需要datetime对象来保存我的格式化时间,以便我可以插入它。

1 个答案:

答案 0 :(得分:4)

DateTime没有“格式化时间” - 只是持有时间。就像int没有“十六进制值”或“十进制值” - 它只是一个整数。

你的第二个版本几乎可以肯定正确地解析所有数据 - 打印出来检查 - 所以这是造成问题的数据库交互,我怀疑。当然,您可以通过为测试程序显式构造DateTime值来隔离解析与数据库交互。

您应该知道,根据SQL Server CE 3.5 docs,SQL Server CE中的日期时间类型仅支持三百分之一秒的粒度,即仅超过3毫秒。如果您需要精确毫秒值,您可能需要考虑替代表示(例如,精确到秒的日期时间,以及单独的整数字段,毫秒。)