我有一个格式为“dd-MM-yyyy HH:mm:ss.fff”的字符串日期时间
像这样..
DateTime mydate = Convert.ToDateTime("13-09-2010 02:30:14.905");
result.SetValue(1, mydate);
//我收到一条错误消息“未将字符串识别为有效的日期时间”
如果我这样做
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
不保存“格式化时间”——它只保存一个时间。这就像 int
不包含“十六进制值”或“十进制值”——它只包含一个整数。
您的第二个版本几乎可以肯定会正确解析所有数据 - 将其打印出来进行检查 - 所以我怀疑是数据库交互导致了问题。当然,您可以通过显式构造测试程序的 DateTime
值来将解析与数据库交互隔离。
您应该知道,根据 SQL Server CE 3.5 docs ,SQL Server CE中的datetime类型只支持三百分之一秒的粒度,也就是3ms多一点。如果您需要一个精确的毫秒值,您可能需要考虑一种替代表示法(例如,一个精确到秒的日期时间,以及一个单独的毫秒整数字段。)
关于c# - 以毫秒 C# 将日期时间插入 SQLCE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3698667/