我们遇到的情况是,我们有一个SQL Server 2005表,其中包含Date列和单独的Time列。当我尝试查询此表时,我想执行以下SQL的等效操作:
where Date + Time > @Something
一些背景信息 - 日期存储为具有00:00时间组件的日期,时间存储为具有1900-01-01日期组件的时间 - 这意味着在SQL中添加两个一起为你提供一个完整的DateTime。
我知道上面有索引含义,但这不是问题所在。
你如何在linq中实现这一点?
其他一些注意事项:
答案 0 :(得分:0)
非常蹩脚的想法,但是:
var date = DateTime.Parse("2012-10-23");
var time = DateTime.Parse("1900-01-01 09:00:00);
var something = date + time;
[...] where Date + Time > something;
答案 1 :(得分:0)
实体框架(版本> 4)具有EntityFunctions类。所以你可以这样做:
... where EntityFunctions.CreateDateTime(date.Year, date.Month, date.Day,
time.Hour, time.Minute, time.Second) < DateTime.Now
或者你可以用老式的方式来做:
... where date.Date < DateTime.Now.Date || (date.Date == DateTime.Now.Date && time.Time < DateTime.Now)