gpt4 book ai didi

c# - 如何将 C# datetime 舍入到 datetime2(0)

转载 作者:行者123 更新时间:2023-12-02 08:34:47 24 4
gpt4 key购买 nike

在我的集成测试中,我试图比较插入到定义为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com