You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两段SQL Server代码改写为PostgreSQL?

SQL Server 转 PostgreSQL 代码修改方案

第一段:时间条件查询的修改

原SQL Server代码中DATEADD(S, ...)的写法在PostgreSQL中不被支持,同时时间函数也有差异,修改后的代码如下:

WHERE
    ('1970-01-01'::timestamp + Submit_Date * interval '1 second') >= CURRENT_TIMESTAMP - interval '3 days'
    OR
    ('1970-01-01'::timestamp + Last_Changed_Date * interval '1 second') >= CURRENT_TIMESTAMP - interval '3 days'

关键调整点:

  • PostgreSQL没有DATEADD的缩写参数(如S代表秒),需用interval '1 second'的形式定义时间间隔
  • SQL Server的GETDATE()替换为PostgreSQL标准函数CURRENT_TIMESTAMP(或NOW(),前者更符合SQL标准)
  • 秒级时间戳转日期需通过起始时间'1970-01-01'::timestamp加上对应秒数的interval实现

第二段:模糊查询与分组的修改

原代码涉及标识符引用和模糊查询语法的差异,修改后的代码如下:

WHERE "test"."Log" LIKE '%Status: Closed%'
GROUP BY "pyr"."ID_Number"

关键调整点:

  • PostgreSQL使用双引号包裹区分大小写的表/字段名(如果原对象名是大小写混合的,必须保留双引号;若为全小写可省略)
  • SQL Server的dbo是默认模式,PostgreSQL默认模式为public,若你的表实际在dbo模式下,需写成"dbo"."test"."Log"
  • 模糊查询的通配符%无需重复,单个%即可匹配任意长度字符(原SQL Server中的%%是冗余写法)

内容的提问来源于stack exchange,提问作者Emma V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 13:52:12