gpt4 book ai didi

c# - 如何比较两个 DateTimeOffSet?

转载 作者:太空狗 更新时间:2023-10-29 19:59:39 26 4
gpt4 key购买 nike

我有一个 DateTimeOffSet 类型的变量。我想过滤所有在 2010 年 1 月 1 日之后创建的项目。

所以我写了下面的查询:

   var _date = new DateTimeOffset(2010, 01, 01, 0, 0, 0, new TimeSpan(-7, 0, 0));

var projects = _repository.Find<Project>
(x => x.CompanyId = CompId && x.CreatedOn > _date)
.ToList();

但是当我查看数据库时,这些是我看到的值类型:

2001-01-25 05:21:46.4370000 -08:00
2005-06-17 00:00:00.0000000 -07:00

显然,一些值有 -08:00,而其他值有 -07:00。那么我的上述查询是否仍然相关?当我查看结果时,过滤是按照我期望的方式进行的。唯一关心的是那个offset部分是什么意思,说不定一不小心结果就好了。

我不太熟悉 DayeTimeOffSet 的工作方式。

最佳答案

So is my above query still relevant?

是的。当您比较两个 DateTimeOffset 值时,比较的是“绝对”时间。该文档根据 UtcDateTime 属性讨论了这一点。例如,来自 op_GreaterThan documentation :

true if the UtcDateTime value of left is later than the UtcDateTime value of right; otherwise, false.

因此,只要那是您想要的行为(我想是的),您就应该没问题。 (诚​​然,我们不知道查询的执行位置 - 如果这是 LINQ to SQL 或 EF,那么您将依赖 that 实现相同的语义,但我认为这是一个合理的期望.)

关于c# - 如何比较两个 DateTimeOffSet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25673103/

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