相关疑难解决方法(0)

从XML转换为SQL Server datetime时,毫秒错误

我遇到了与将日期时间从XML(ISO8601:yyyy-mm-ddThh:mi:ss.mmm)转换为SQL Server 2005日期时间相关的问题.问题是转换毫秒是错误的.我已经使用nvarchar中的convert(datetime,MyDate,126)测试了隐式和显式转换,结果是相同的:

Original                Result
2009-10-29T15:43:12.990 2009-10-29 15:43:12.990
2009-10-29T15:43:12.991 2009-10-29 15:43:12.990
2009-10-29T15:43:12.992 2009-10-29 15:43:12.993
2009-10-29T15:43:12.993 2009-10-29 15:43:12.993
2009-10-29T15:43:12.994 2009-10-29 15:43:12.993
2009-10-29T15:43:12.995 2009-10-29 15:43:12.997
2009-10-29T15:43:12.996 2009-10-29 15:43:12.997
2009-10-29T15:43:12.997 2009-10-29 15:43:12.997
2009-10-29T15:43:12.998 2009-10-29 15:43:12.997
2009-10-29T15:43:12.999 2009-10-29 15:43:13.000
Run Code Online (Sandbox Code Playgroud)

我的非广泛测试显示最后一位数字是0,3或7.这是一个简单的舍入问题吗?毫秒精度很重要,失去/获得一个或两个不是一个选择.

xml sql-server sql-server-2005

11
推荐指数
2
解决办法
4040
查看次数

从DateTime转换为SqlDateTime是不准确的

我有一个从源(a DataRow或a SqlDataReader)获取日期属性的方法:

protected SqlDateTime GetSqlDateTimePropertyValue(string propertyName, object source)
{
  var objValue = GetPropertyValue(propertyName, source);
  var value = objValue == DBNull.Value ? null : (DateTime?)objValue;
  var sqlValue = new SqlDateTime();
  if (value.HasValue) sqlValue = value.Value;
  return sqlValue;
}
Run Code Online (Sandbox Code Playgroud)

但转换似乎是稍微改变日期,以便我的测试总是失败.

有谁知道为什么这种方法会错误地转换?

在方法结束时,看起来转换为进行SqlDateTime一些舍入:

value.Value.Ticks:        634698391707468296
sqlValue.Value.Ticks:     634698391707470000
Run Code Online (Sandbox Code Playgroud)

c# asp.net

8
推荐指数
1
解决办法
1778
查看次数

DateTime.Compare未按预期工作

我以下列方式插入客户.

DateTime d = DateTime.Now;

foreach(Customer cus in CustomerList)
{
    cus.EntryDate = d;
}

SaveToDatbase(CustomerList);
Run Code Online (Sandbox Code Playgroud)

使用正确的输入日期成功保存日期,但是当我检索数据并将其与变量d进行比较时,它不匹配.

foreach(Customer cus in GetFromDatabase())
{
    Response.Write(DateTime.Compare(cus.EntryDate, d));
}
Run Code Online (Sandbox Code Playgroud)

输出为1而不是0.我检查了插入的数据,它与d变量值匹配,毫秒.日期存储在sql server数据库中.我意识到的一件事是,如果我为cus.EntryDate和d重置毫秒为0,则输出为0.我在这里做错了什么?

c# asp.net c#-4.0

2
推荐指数
1
解决办法
1244
查看次数

标签 统计

asp.net ×2

c# ×2

c#-4.0 ×1

sql-server ×1

sql-server-2005 ×1

xml ×1