从Postgresql到SQL Server的转换

从Postgresql到SQL Server的转换,sql,sql-server,postgresql,ssms,Sql,Sql Server,Postgresql,Ssms,我正在使用SSMS并从PostgreSQL中引入一些数据,我在PostgreSQL中使用的转换在SQL Server中不起作用。该代码将数据输入编号转换为用户可以搜索的较小格式。PostgreSQL中的代码是: (substring(A."DATA_NUMBER"::text, 14, 2) || '-'::text) || substring(a."DATA_NUMBER"::text, 2, 5) AS NEW_DATA 这是一个更大的查询的一部分,但这是其中唯一一个在

我正在使用SSMS并从PostgreSQL中引入一些数据,我在PostgreSQL中使用的转换在SQL Server中不起作用。该代码将数据输入编号转换为用户可以搜索的较小格式。PostgreSQL中的代码是:

(substring(A."DATA_NUMBER"::text, 14, 2) || '-'::text) 
         || substring(a."DATA_NUMBER"::text, 2, 5) AS NEW_DATA

这是一个更大的查询的一部分,但这是其中唯一一个在SQL Server中不起作用的部分。我对SQL Server中的转换不太了解,所以它可能非常简单。

子字符串转换是两件不同的事情。请删除
::text
并用
+
替换
|
,然后重试

当设置
QUOTED\u Identifier
设置为
ON
时,“数据编号”将仅用作对象标识符。如果DATA_NUMBER是一列,我将编写如下代码:

(substring(A.DATA_NUMBER, 14, 2) + '-') 
         + substring(a.DATA_NUMBER, 2, 5) AS NEW_DATA

为了更好地理解这一点,数据输入以“002095-13012016”的格式从系统中出来,这是一个唯一的数字和一个日期,用“-”分隔。我需要它的格式是一年中的最后两个数字和一个连字符分隔的唯一数字。因此,002095-13012016将显示为16-002095。将其更改为:(子字符串(a“DATA_NUMBER”,14,2)+'-')+子字符串(a“DATA_NUMBER”,2,5),因为新的_DATA仍然收到一个错误,表示数据编号无法绑定。