当前位置: 首页 > news >正文

sqlsever的sql转postgresql的sql的方言差异

一、数据类型映射差异

可以使用KDTS将SQL Server数据库迁移至PG

SQL Server 类型PostgreSQL 对应类型说明
VARCHAR(n)VARCHAR(n) / TEXTPostgreSQL 中 VARCHAR(n) 无性能损耗,TEXT 等效于 VARCHAR(无限制)
NVARCHAR(n)VARCHAR(n)PostgreSQL 默认 UTF-8 编码,无需区分 VARCHAR/NVARCHAR
DATETIMETIMESTAMP存储日期 + 时间,PostgreSQL TIMESTAMP 无 SQL Server 的精度限制
DATETIME2(n)TIMESTAMP(n)支持自定义精度(如 TIMESTAMP(3) 对应毫秒级)
BITBOOLEAN / SMALLINTBIT(1) 对应 BOOLEAN,多值 BIT(n) 需用 SMALLINT 或 BYTEA

二、常用函数 / 操作符差异

功能场景SQL Server 语法PostgreSQL 语法兼容方案
字符串拼接'a' + 'b''a'||'b'CONCAT('a','b')`
取字符串长度LEN('test')LENGTH('test')
日期格式化FORMAT(GETDATE(), 'yyyy-MM-dd')TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD')
获取当前时间GETDATE() / SYSDATETIME()CURRENT_TIMESTAMP / NOW()
空值处理(替换)ISNULL(col, '默认值')COALESCE(col, '默认值')
分页(TOP/LIMIT)SELECT TOP 10 * FROM tSELECT * FROM t LIMIT 10LIMIT 5 OFFSET 10
分页(OFFSET)OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLYLIMIT 5 OFFSET 10LIMIT 5 OFFSET 10
删除数据delete table(支持)delete from tabledelete from table
存储过程与函数存储过程用 CREATE PROCEDURECREATE FUNCTION(推荐用函数)(其中:RETURNS TABLE 和 OUT 参数冲突

两者都是定义输出列的方式,不能同时使用)

布尔条件查询 isBoolean =1isBoolean =trueisBoolean ='true'
获取时间差函数DATEIFF(YEAR,字段,GETDATE())EXTARCT(YEAR FROM (CURRENT_DATE,字段))
WITH(NOLOCK)有此方言无此方言

三、特有函数兼容

特有函数多用cast和substring进行兼容转换

http://www.lryc.cn/news/622146.html

相关文章:

  • SQL182 连续两次作答试卷的最大时间窗
  • 优化网络ROI:专线复用,上云出网一“线”牵!
  • OSCP - Proving Grounds - CVE-2024-25180
  • 技术解读 | 搭建NL2SQL系统需要大模型么?
  • python re正则模块
  • Redis 缓存和 Redis 分布式锁
  • Spring中存在两个相同的Bean是否会报错?
  • PyTorch 训练神经网络模型,并集成到springboot项目中
  • STM32L051同时处理Alarm A和Alarm B中断
  • 朗空量子与 Anolis OS 完成适配,龙蜥获得抗量子安全能力
  • Nginx反向代理Tomcat实战指南
  • 测控一体化闸门驱动灌区信息化升级的核心引擎
  • C++设计模式:类间关系
  • 自定义数据集(pytorchhuggingface)
  • cut、tr、sort 和 uniq 生产典型示例
  • 微服务的编程测评系统11-jmeter-redis-竞赛列表
  • Nginx反向代理与缓存实现
  • 【论文解读】DDRNet:深度双分辨率网络在实时语义分割中的结构与原理全面剖析
  • 51单片机-驱动蜂鸣器模块教程
  • 开源数据发现平台:Amundsen Frontend Service 安装 开发者指南
  • debian13 安装过程 root配置
  • 从 LLM 到自主 Agent:OpenCSG 打造开源 AgenticOps 生态
  • Linux网络基础概念
  • 【RTOS】RT-Thread 进程间通信IPC源码级分析详解
  • [Pyro] 基础构件 | 随机性sample | 可学习参数param | 批量处理plate
  • 【3D图像技术分析及实现】3DGS与深度学习网络结合以实现跨场景迁移的研究调研
  • 电力系统之常见基础概念
  • 【秋招笔试】2025.08.15饿了么秋招机考-第二题
  • [激光原理与应用-285]:理论 - 波动光学 - 无线电磁波的频谱分配
  • [激光原理与应用-287]:理论 - 波动光学 - 电磁波既能承载能量,又能承载信息?