当前位置: 首页 > 面试题库 >

MYSQL中不存在规范函数“ EntityFunctions.TruncateTime”

柳镜
2023-03-14
问题内容

我正在尝试运行此查询:

DateTime DDate=DateTime.Today; //Today's date without Time
var v= db.measurements.Where(m => EntityFunctions.TruncateTime(m.InDate) == DDate);

它只是返回两个日期相等的对象,而忽略时间部分。

但我收到:

{“功能[数据库] .TruncateTime不存在”}

堆栈跟踪:

at MySql.Data.MySqlClient.MySqlStream.ReadPacket()
at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)
at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)
at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
at MySql.Data.MySqlClient.MySqlDataReader.NextResult()
at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
at MySql.Data.Entity.EFMySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)

我在用着:

  • C#Visual Studio 2010
  • EntityFramework 4数据库优先
  • 网络框架4
  • MYSQL服务器5.6

MySQL.Data和MySQL.Data.Entity的版本是6.6.5.0

MySQL支持TruncateTime。

这个人也发生了同样的事情。


问题答案:

我无法解决它,所以我只在数据库中创建了一个名为“ TruncateTime”的函数。

Create FUNCTION TruncateTime(dateValue DateTime) RETURNS date
return Date(dateValue);

它有效,但我不喜欢它。

这些人做了类似的事情:

MySQL的EntityFunctions.AddSeconds的替代方法

CurrentUtcDateTime不存在-
实体框架和MySql

所以现在我认为这可能是不必要的,我可以直接从数据库中直接调用它并仍然获取实体,如下所示:

var x = db.ExecuteStoreQuery<Measurement>(@"SELECT field1,field2
FROM   Measurements
WHERE  Date(InDate) = {0}", DDate);

就这样。



 类似资料:
  • 问题内容: 任何人都可以帮助我了解什么是mysql中的规范化,在这种情况下以及我们需要如何使用它。 提前致谢。 问题答案: 我试图在这里尝试用外行术语解释标准化。首先,它适用于关系数据库(Oracle,Access,MySQL),因此不仅适用于MySQL。 规范化是要确保每个表都只有最小的字段并摆脱依赖关系。假设您有一个员工记录,而每个员工都属于一个部门。如果将部门与员工的其他数据一起存储为字段,

  • 小数转 2 进制 方法:乘2取整 对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。如此不断重复,直到小数部分为0或达到精度要求为止。第一次所得到为最高位,最后一次得到为最低位。 如0.25的二进制: 0.25*2 = 0.5 取整是0, 0.5*2 =1.0 取整是1, 即0.25的二进制为 0.01(第一

  • 小数转 2 进制 方法:乘2取整 对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分。如此不断重复,直到小数部分为0或达到精度要求为止。第一次所得到为最高位,最后一次得到为最低位。 如0.25的二进制: 0.25*2 = 0.5 取整是0, 0.5*2 =1.0 取整是1, 即0.25的二进制为 0.01(第一

  • 这是使用PHP将数据从(HTML)表单保存到MySQL数据库的规范问答。 如果您正在尝试执行以下操作,则此操作适用于您: 接受HTML表单上的用户输入 使用PHP脚本处理输入 将所述输入存储到MySQL数据库中。 过去提出的不应使用的类似问题的例子: 连接PHP代码并将表单提交到mySQL数据库 使用PHP/html表单插入mySQL-不工作 如何使用PHP将html表单数据传递到mySQL db

  • 上一小节介绍了如何设计数据表,并合理选择字段数据类型新建数据表,本小节来介绍数据表的设计规范,主要遵循数据表设计三范式和适当的反范式化。 1.第一设计范式 第一设计范式要求表中字段都是不可再分的,如果实体中的某个属性有多个值时,必须拆分为不同的属性 。通俗理解即一个字段只存储一项信息,如下图所示,其中联系方式可以拆分为手机、邮箱、固定电话,所以下图不符合数据表第一设计范式要求: 纠正之后符合第一设

  • 我正在寻找部署一个用TypeScript编写的云函数,使用一个火力恢复触发器。脚本工作没有任何问题。然而,我需要指定执行区域,为了尊重我的RGPD,我需要在欧洲西部1执行的函数。我已经看了关于这个主题的留档,它被指定在函数中添加“。区域”,但是这会产生一个错误,你会发现附加的。获得的错误是"错误TS2339:属性'区域'在类型'DocumentBuilder上不存在。我想指出,我在本地VSC中没有