繁体   English   中英

在 Entity Framework Core LINQ 查询中将字符串转换为 DateTime 会返回什么?

[英]What does casting a string to DateTime in an Entity Framework Core LINQ query return?

我的应用程序使用 Entity Framework Core 从 SQL 数据库加载数据。 为了避免加载我的表Schedule的所有数据条目并在之后过滤它们,我想通过将Schedule.Date条目(一个字符串)与先前创建的DateTime object 名称进行比较来在数据库查询中过滤它们targetDate 由于在此查询中无法直接使用DateTime.ParseSchedule.Date转换为DateTime ,因此我将其转换为object ,然后显式转换为DateTime 以下行代表我正在做的事情:

Schedule schedule = _context.Schedule.Where(s => (DateTime)(object)s.Date >= targetDate).First();

这目前工作正常。 但是,我不想以后遇到问题,所以我需要了解在这种情况下转换为DateTime使用哪种格式。 尽管数据库中的日期是字符串,但它们都以en-US格式提供,并且投射它们似乎只使用这种格式,这很好。 我如何确定它始终使用这种格式,以及在使用这样的演员表时如何确定要使用的格式?

假设您使用的是 SQL 服务器

虽然数据库中的日期是字符串,

由于多种原因,这很糟糕。 在这里,您需要进行表扫描以将所有字符串转换为日期以执行比较。

它们都以 en-US 格式提供,并且投射它们似乎只使用这种格式,这会很棒。 我如何确定它始终使用这种格式,以及在使用这样的演员表时如何确定要使用的格式?

转换在 SQL 服务器中完成,它将根据连接的当前语言将字符串转换为日期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM