比较 LINQ 中的日期部分

发布于 2024-12-08 15:28:38 字数 57 浏览 0 评论 0 原文

在 LINQ to SQL 中,如何仅比较 sql 日期时间列和 .net 日期时间对象的日期部分?

In LINQ to SQL, how do I compare only the date part of an sql datetime column and .net datetime object?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

盛装女皇 2024-12-15 15:28:38

尝试使用两者的 Date 属性:

Date today = DateTime.Today; // Effectively DateTime.Now.Date

var dataFromToday = from record in context.Records
                    where record.TimeStamp.Date == today
                    select record;

相信这适用于 LINQ to SQL...正如 tvanfosson 所说,它不适用于 EF。

Try using the Date property of both:

Date today = DateTime.Today; // Effectively DateTime.Now.Date

var dataFromToday = from record in context.Records
                    where record.TimeStamp.Date == today
                    select record;

I believe this works for LINQ to SQL... as tvanfosson says, it doesn't for EF.

左耳近心 2024-12-15 15:28:38

Linq to SQL 支持将 Date 属性转换为 SQL 以进行比较等。有关支持选项的更多信息,请访问 MSDN

Linq to SQL supports translation of the Date property to SQL for comparisons, etc. More information on the supported options can be found on MSDN.

橘寄 2024-12-15 15:28:38
using System.Data.Entity;

DbFunctions.TruncateTime(u.BirthDate) = DbFunctions.TruncateTime(someDate)
using System.Data.Entity;

DbFunctions.TruncateTime(u.BirthDate) = DbFunctions.TruncateTime(someDate)
赴月观长安 2024-12-15 15:28:38

您可以创建一个 CLR UDF 来仅进行日期比较,然后在 linq to sql linq 查询中引用它。

You could create a CLR UDF to do the date only compare and then reference that in your linq to sql linq query.

山色无中 2024-12-15 15:28:38
using System.Data.Objects.SqlClient; //Don't forget this!!

//You can access to SQL DatePart function using something like this:

YourTable.Select(t => new { DayOfWeek = SqlFunctions.DatePart("weekday", t.dateTimeField) - 1 }); //Zero based in SQL

//You can compare to SQL DatePart function using something like this:

DateTime dateToCompare = DateTime.Today;
YourTable.Where(t => SqlFunctions.DatePart("weekday", t.dateTimeField) - 1 == dateToCompare }); //Zero based in SQL
using System.Data.Objects.SqlClient; //Don't forget this!!

//You can access to SQL DatePart function using something like this:

YourTable.Select(t => new { DayOfWeek = SqlFunctions.DatePart("weekday", t.dateTimeField) - 1 }); //Zero based in SQL

//You can compare to SQL DatePart function using something like this:

DateTime dateToCompare = DateTime.Today;
YourTable.Where(t => SqlFunctions.DatePart("weekday", t.dateTimeField) - 1 == dateToCompare }); //Zero based in SQL
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文