我有一个字符串日期时间,格式为“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对象来保存我的格式化时间,以便我可以插入它。
答案 0 :(得分:4)
DateTime
没有“格式化时间” - 只是持有时间。就像int
没有“十六进制值”或“十进制值” - 它只是一个整数。
你的第二个版本几乎可以肯定正确地解析所有数据 - 打印出来检查 - 所以这是造成问题的数据库交互,我怀疑。当然,您可以通过为测试程序显式构造DateTime
值来隔离解析与数据库交互。
您应该知道,根据SQL Server CE 3.5 docs,SQL Server CE中的日期时间类型仅支持三百分之一秒的粒度,即仅超过3毫秒。如果您需要精确毫秒值,您可能需要考虑替代表示(例如,精确到秒的日期时间,以及单独的整数字段,毫秒。)