作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的集成测试中,我试图比较插入到定义为 datetime2(0)
的列中的 C# DateTime,因此很明显它在从 DB 返回的过程中失去了精度。
所以我的问题是如何将 C# DateTime
舍入到 datetime2(0)
精度?
我想去
Assert.AreEqual(insert.CreatedDateTimeUtc.RoundDateTime2(0), result.CreatedDateTimeUtc)
declare @datetime2 datetime2(0);
set @datetime2 = '2014-04-08 10:27:36.000';
print @datetime2
set @datetime2 = '2014-04-08 10:27:36.499';
print @datetime2
set @datetime2 = '2014-04-08 10:27:36.500';
print @datetime2
set @datetime2 = '2014-04-08 10:27:36.999';
print @datetime2
-- Prints
2014-04-08 10:27:36
2014-04-08 10:27:36
2014-04-08 10:27:37
2014-04-08 10:27:37
最佳答案
编辑以执行舍入...
所以:
long tickOfSecond = original.Ticks % TimeSpan.TicksPerSecond;
long ticksToAdd = tickOfSecond < TimeSpan.TicksPerSecond / 2
? -tickOfSecond : 10000000 - tickOfSecond
DateTime truncated = original.PlusTicks(ticksToAdd);
关于c# - 如何将 C# datetime 舍入到 datetime2(0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22948825/
我是一名优秀的程序员,十分优秀!