Postgres Interval 与 Dapper 和 npgsql 不起作用

2024-01-03

我正在将 Dapper 与 Postgres npgsql 一起使用,但在使用以下命令执行 SQL 命令时遇到问题INTERVAL。 该命令在我的代码之外运行良好。

我收到错误

Npgsql.PostgresException:'42601:“$1”处或附近的语法错误

位置:85'

位置85正是参数@ageInDays所在的位置。

我的代码是

int ageInDays = 90;
string mysql = "DELETE FROM Monitorvalues m1 WHERE lastupdate < current_date - INTERVAL @ageInDays DAY";

using (var connection = GetConnection)
{
    var dynamicParameters = new DynamicParameters();
    dynamicParameters.Add("ageInDays", ageInDays);
    return await connection.ExecuteScalarAsync<int>(mysql, dynamicParameters);
}

我做错了什么?


您需要参数化整个间隔值,将其作为 TimeSpan 传递:

conn.Query("DELETE FROM Monitorvalues WHERE lastupdate < current_date - @Interval", new { Interval = TimeSpan.FromDays(2) });

作为替代方案,如果您确实需要根据参数化天数创建间隔,则可以使用make_intervalPG 函数为此:

conn.Query("DELETE FROM Monitorvalues WHERE lastupdate < current_date - make_interval(days => @Days)", new { Days = 2 });

PostgreSQL 不允许参数化文字表达式 (INTERVAL ...),这就是您的代码不起作用的原因。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Postgres Interval 与 Dapper 和 npgsql 不起作用 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 按成员序列化

    我已经实现了template
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 无法连接到数据库 - Postgres Job Scheduling 发布(基于 Windows 的计算机)

    我在互联网上搜索这个问题 但找不到正确的答案 这link https stackoverflow com questions 35410829 postgresql9 4 scheduling agent pgagent couldnt g
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 使用 postgres 和 node js 在单个语句中执行多个查询

    我需要在像这样的单个语句中执行插入和删除查询 INSERT INTO COMPANY ID NAME VALUES 1 Paul DELETE FROM COMPANY WHERE ID 12 这是我用于执行查询的 node js 代码 p
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 即使删除了某些行,使用种子值进行随机排序也会再次返回相同的集合吗?

    我正在编写一个分页 API 通过设置随机种子值来给出随机结果 除非用户想要洗牌结果 否则结果将是相同的 但如果用户想要洗牌 我将重新创建种子值 以便它将返回一组不同的记录 我的问题是 如果我从数据库中删除一条记录 即使种子相同 由于元素长度

随机推荐

  • Dart:将十进制转换为十六进制

    我一直在寻找一种在 Dart 编程语言中将十进制数转换为十六进制格式的方法 The hex encode方法中的HexCodec例如 类无法转换十进制 1111 其十六进制值为 457 而是给出异常 FormatException 无效字节
  • 我应该在函数中抛出 IllegalArgumentException 吗?

    我正在构建一个包含大量计算的科学软件 当然参数可能有错误的长度等 所以我使用IllegalArgumentException类 因为它似乎是这个问题的正确名称 但我应该把throws IllegalArgumentException在函数定
  • 如何使用 python 中的循环创建多个目录?

    我想用循环创建 10 个目录 我尝试了以下代码 import os pathname 1 directory C Directory Path Name str pathname while pathname lt 11 if not os
  • 右移和有符号整数

    在我的编译器上 以下伪代码 值替换为二进制 sint32 word 10000000 00000000 00000000 00000000 word gt gt 16 产生一个word位字段如下所示 11111111 11111111 10
  • 在tomcat中共享文件夹

    如何使用 tomcat 6 浏览器访问文件夹 我想我需要向 web xml 添加上下文 我想 所以当我导航到http localhost 8080 myfiles http localhost 8080 myfiles我希望看到 c tem
  • 如何在 Windows 上以提升的权限运行脚本?

    我一直在试图弄清楚如何运行一堆都需要提升权限的应用程序 DameWare MSC exe PowerShell exe 和 SCCM Manager Console 等应用程序都在我的日常工作中使用 我现在运行的是Win7 计划最终迁移到W
  • Wp7 键盘支持多少种语言以及如何设置

    我希望为 Windows Phone 7 创建一个翻译应用程序 我不知道如何去做 这里是问题 我想知道当我在文本框中输入文本进行翻译时 我该怎么做 1 假设 我的Windows手机是中文的 如何将其更改为其他语言 例如法语 德语 俄语等 我
  • C 语言的限制输出

    在 C 中 我想将字符串限制为前 8 个字符 例如 我有 char out printf c str 我怎样才能使它只返回前 8 个字符 您可以通过设置格式说明符中的精度来限制长度 printf 8s str 这将打印up to指向的以空字
  • Maven Cobertura 插件未生成coverage.xml

    我试图生成一个coverage xml 以便我可以在Hudson 的Cobertura 插件中引用它 但该文件没有被创建 我已将以下内容添加到我的 POM 中
  • 如何在.net core中使用反射通过名称查找类的名称空间?

    我有一个仅包含类名称的字符串列表 我需要使用 Activator 创建它们的实例 但它们都可以位于不同的命名空间中 类将来可以移动到另一个名称空间中 因此我无法对其进行硬编码 如果您知道永远不会有多个具有相同名称的类型驻留在不同的命名空间中
  • 检测已安装的浏览器,以便 Process.Start("chrome") 不会出错

    我试图让用户选择我的应用程序用来启动网址的浏览器 目前它使用默认浏览器 但有些人想指定不同的浏览器 我想仅显示列表中已安装的浏览器 并且我将像这样启动它们 Process Start chrome url 更多信息 https learn
  • cakephp 复选框显示额外的隐藏字段

    foreach apps as app echo this gt Form gt input Application array type gt checkbox id gt app Application description div
  • Maven 发布:如何跳过部署步骤?

    要发布我正在使用的应用程序maven 发布 插件 此过程中的一个步骤是将版本部署到存储库中 我想避免这一步 但是当我从 pom 文件中删除 distributionManagement 时 出现错误 Deployment failed re
  • 更改端口号后无法在 Visual Studio 中调试?

    我添加了这一行 UseUrls http 5000 使其他主机的客户端能够访问 Web api public static void Main string args var host new WebHostBuilder UseKestr
  • 为什么sbt找不到KafkaUtils?

    我在使用 SBT 编译的代码 来自 Kafka 的 wordCount 中出现此错误 error home hduser sbt project project1 src main scala sparkKafka scala 4 35 o
  • Python:使用已知 URL 但未知驱动器号访问 Windows 映射网络驱动器

    我正在尝试编写一个可以在远程 Linux 服务器上移动和复制文件的 Python 脚本 但是 我不能假设运行该脚本 在 Windows 上 的每个人都会将此服务器映射到同一个字母 我不想提示用户输入正确的盘符 而是想简单地通过服务器的网络
  • SQLAlchemy db.session.query() 与 model.query

    对于简单的返回所有结果查询 是否应该优先选择一种方法 我可以在网上找到两者的用途 但无法真正找到任何描述差异的内容 db session query my model name all my model name query all 我觉得
  • RxAndroid:Schedulers.io() 线程上的 UI 更改

    我在 IO 线程上有一个简单的工作 即更改主屏幕壁纸 之后我尝试在 UI 线程上运行一些动画 AppObservable bindFragment this Observable just 0 observeOn Schedulers io
  • 实体框架 4 - 处理非常大(1000+表)的数据模型?

    我们有一个包含超过 1000 个表的数据库 并希望考虑使用 EF4 作为我们的数据访问层 但我担心将其用于如此大的数据模型的实际情况 我见过这个问题 https stackoverflow com questions 1519643 how
  • Postgres Interval 与 Dapper 和 npgsql 不起作用

    我正在将 Dapper 与 Postgres npgsql 一起使用 但在使用以下命令执行 SQL 命令时遇到问题INTERVAL 该命令在我的代码之外运行良好 我收到错误 Npgsql PostgresException 42601 1