将 DateTime.Now 与 SQL Server 的开始时间和结束时间进行比较

Posted

技术标签:

【中文标题】将 DateTime.Now 与 SQL Server 的开始时间和结束时间进行比较【英文标题】:Comparing DateTime.Now to a Start and End time from SQL Server 【发布时间】:2016-08-17 14:19:08 【问题描述】:

我已经为此苦苦挣扎了好几个小时,并且确信有一个简单的解释。

我有一个 SQL Server 表,其中包含 DayOfWeek (DateTime)、StartTime (Time)、EndTime (Time) 列。

我正在尝试编写一个 lambda 选择来获取所有行,其中DateTime.NowDayOfWeek 相同,大于StartTime 且小于EndTime

我认为我必须将 SQL Server 类型 Time 用作 C# Timespan,但我只是做错了。

我已尝试按照此处 (Datetime.now as TimeSpan value?) 的说明进行操作,但无济于事。

我的代码行是:

context.DayAndTimeModifiers
       .Where(x => x.IsActive && (int)d.DayOfWeek == x.DayOfWeek 
                   && d.??? > x.StartTime 
                   && d.??? < x.EndTime)

非常感谢任何帮助。

【问题讨论】:

d 是 DateTime.Now。很抱歉有任何困惑 【参考方案1】:

我不知道我是怎么错过的,DateTime.Now.TimeOfDay 正是我所需要的。 这是调整后的代码行...

var d = DateTime.Now;

return context.DayAndTimeModifiers
              .Where(x => x.IsActive && (int)d.DayOfWeek == x.DayOfWeek && 
                          d.TimeOfDay > x.StartTime && d.TimeOfDay < x.EndTime).ToList();

【讨论】:

以上是关于将 DateTime.Now 与 SQL Server 的开始时间和结束时间进行比较的主要内容,如果未能解决你的问题,请参考以下文章

django 1.4 timezone.now() 与 datetime.datetime.now()

DateTime.Now 与 DateTime.UtcNow

DateTime.Now 和DateTime.UtcNow的区别

使用 C# 将 DateTime 格式转换为 SQL 格式

无法比较天真和有意识的 datetime.now() <= challenge.datetime_end

将 DateTime.Now 转换为秒